Re: Linux 2.6.8-rc1

Geert Uytterhoeven
2004-07-12T12:01:53Z

On Sun, 11 Jul 2004, Linus Torvalds wrote:
> Hirofumi Ogawa:
> o FAT: don't use "utf8" charset and NLS_DEFAULT

This patch breaks compilation if both MSDOS_FS and VFAT_FS are not set, due to
CONFIG_FAT_DEFAULT_CODEPAGE being undefined.

Suggested fix: either make FAT_DEFAULT_CODEPAGE depend on FAT_FS only
(compilation of fs/fat/inode.c depends on FAT_FS), or add a test for
CONFIG_FAT_DEFAULT_CODEPAGE being undefined, cfr. the test for
CONFIG_FAT_DEFAULT_IOCHARSET in fs/fat/inode.c.

| --- a/fs/Kconfig 2004-06-20 11:08:01 -07:00
| +++ b/fs/Kconfig 2004-06-20 11:08:01 -07:00
| @@ -672,6 +672,25 @@
| To compile this as a module, choose M here: the module will be called
| vfat.
|
| +config FAT_DEFAULT_CODEPAGE
| + int "Default codepage for FAT"
| + depends on MSDOS_FS || VFAT_FS
| + default 437
| + help
| + This option should be set to the codepage of your FAT filesystems.
| + It can be overridden with the 'codepage' mount option.
| +
| +config FAT_DEFAULT_IOCHARSET
| + string "Default iocharset for FAT"
| + depends on VFAT_FS
| + default "iso8859-1"
| + help
| + Set this to the default I/O character set you'd like FAT to use.
| + It should probably match the character set that most of your
| + FAT filesystems use, and can be overridded with the 'iocharset'
| + mount option for FAT filesystems. Note that UTF8 is *not* a
| + supported charset for FAT filesystems.
| +
| config UMSDOS_FS
| #dep_tristate ' UMSDOS: Unix-like file system on top of standard MSDOS fs' CONFIG_UMSDOS_FS $CONFIG_MSDOS_FS
| # UMSDOS is temprory broken
| diff -Nru a/fs/fat/inode.c b/fs/fat/inode.c
| --- a/fs/fat/inode.c 2004-06-20 11:08:01 -07:00
| +++ b/fs/fat/inode.c 2004-06-20 11:08:01 -07:00
| @@ -23,6 +23,14 @@
| #include <linux/parser.h>
| #include <asm/unaligned.h>
|
| +#ifndef CONFIG_FAT_DEFAULT_IOCHARSET
| +/* if user don't select VFAT, this is undefined. */
| +#define CONFIG_FAT_DEFAULT_IOCHARSET ""
| +#endif
| +
| +static int fat_default_codepage = CONFIG_FAT_DEFAULT_CODEPAGE;
| +static char fat_default_iocharset[] = CONFIG_FAT_DEFAULT_IOCHARSET;
| +
| /*
| * New FAT inode stuff. We do the following:
| * a) i_ino is constant and has nothing with on-disk location.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds