"Maciej S. Szmigiero" <mail@xxxxxxxxxxxxxxxxxxxxx> writes: > FAT has long supported its own default file name encoding > config setting, separate from CONFIG_NLS_DEFAULT. > > However, if UTF-8 encoded file names are desired FAT > character set should not be set to utf8 since this would > make file names case sensitive even if case insensitive > matching is requested. > Instead, "utf8" mount options should be provided to enable > UTF-8 file names in FAT file system. > > Unfortunately, there was no possibility to set the default > value of this option so on UTF-8 system "utf8" mount option > had to be added manually to most FAT mounts. > > This patch adds config option to set such default value. > > Signed-off-by: Maciej S. Szmigiero <mail@xxxxxxxxxxxxxxxxxxxxx> Acked-by: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> > --- > Changes from v1: use IS_ENABLED() macro to simplify code > > Documentation/filesystems/vfat.txt | 7 ++++--- > fs/fat/Kconfig | 18 +++++++++++++++++- > fs/fat/inode.c | 4 +++- > 3 files changed, 24 insertions(+), 5 deletions(-) > > diff --git a/Documentation/filesystems/vfat.txt b/Documentation/filesystems/vfat.txt > index 223c32171dcc..cf51360e3a9f 100644 > --- a/Documentation/filesystems/vfat.txt > +++ b/Documentation/filesystems/vfat.txt > @@ -56,9 +56,10 @@ iocharset=<name> -- Character set to use for converting between the > you should consider the following option instead. > > utf8=<bool> -- UTF-8 is the filesystem safe version of Unicode that > - is used by the console. It can be enabled for the > - filesystem with this option. If 'uni_xlate' gets set, > - UTF-8 gets disabled. > + is used by the console. It can be enabled or disabled > + for the filesystem with this option. > + If 'uni_xlate' gets set, UTF-8 gets disabled. > + By default, FAT_DEFAULT_UTF8 setting is used. > > uni_xlate=<bool> -- Translate unhandled Unicode characters to special > escaped sequences. This would let you backup and > diff --git a/fs/fat/Kconfig b/fs/fat/Kconfig > index 182f9ffe2b51..3ff1772f612e 100644 > --- a/fs/fat/Kconfig > +++ b/fs/fat/Kconfig > @@ -93,8 +93,24 @@ config FAT_DEFAULT_IOCHARSET > that most of your FAT filesystems use, and can be overridden > with the "iocharset" mount option for FAT filesystems. > Note that "utf8" is not recommended for FAT filesystems. > - If unsure, you shouldn't set "utf8" here. > + If unsure, you shouldn't set "utf8" here - select the next option > + instead if you would like to use UTF-8 encoded file names by default. > See <file:Documentation/filesystems/vfat.txt> for more information. > > Enable any character sets you need in File Systems/Native Language > Support. > + > +config FAT_DEFAULT_UTF8 > + bool "Enable FAT UTF-8 option by default" > + depends on VFAT_FS > + default n > + help > + Set this if you would like to have "utf8" mount option set > + by default when mounting FAT filesystems. > + > + Even if you say Y here can always disable UTF-8 for > + particular mount by adding "utf8=0" to mount options. > + > + Say Y if you use UTF-8 encoding for file names, N otherwise. > + > + See <file:Documentation/filesystems/vfat.txt> for more information. > diff --git a/fs/fat/inode.c b/fs/fat/inode.c > index a5599052116c..226281068a46 100644 > --- a/fs/fat/inode.c > +++ b/fs/fat/inode.c > @@ -1127,7 +1127,7 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat, > } > opts->name_check = 'n'; > opts->quiet = opts->showexec = opts->sys_immutable = opts->dotsOK = 0; > - opts->utf8 = opts->unicode_xlate = 0; > + opts->unicode_xlate = 0; > opts->numtail = 1; > opts->usefree = opts->nocase = 0; > opts->tz_set = 0; > @@ -1135,6 +1135,8 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat, > opts->errors = FAT_ERRORS_RO; > *debug = 0; > > + opts->utf8 = IS_ENABLED(CONFIG_FAT_DEFAULT_UTF8) && is_vfat; > + > if (!options) > goto out; > -- OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html