fs/ntfs3: Add iocharset= mount option as alias for nls=
authorKari Argillander <kari.argillander@gmail.com>
Tue, 7 Sep 2021 15:35:55 +0000 (18:35 +0300)
committerKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
Thu, 9 Sep 2021 16:28:53 +0000 (19:28 +0300)
Other fs drivers are using iocharset= mount option for specifying charset.
So add it also for ntfs3 and mark old nls= mount option as deprecated.

Reviewed-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Kari Argillander <kari.argillander@gmail.com>
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Documentation/filesystems/ntfs3.rst
fs/ntfs3/super.c

index af7158de6fde89e127ff75b196f25db563b56695..ded706474825ffac2a6855aa4f240d3636a89c08 100644 (file)
@@ -32,12 +32,12 @@ generic ones.
 
 ===============================================================================
 
-nls=name               This option informs the driver how to interpret path
+iocharset=name         This option informs the driver how to interpret path
                        strings and translate them to Unicode and back. If
                        this option is not set, the default codepage will be
                        used (CONFIG_NLS_DEFAULT).
                        Examples:
-                               'nls=utf8'
+                               'iocharset=utf8'
 
 uid=
 gid=
index 729ead6f2fac0883b7c1180e45d240f35ba7117b..503e2e23f711e9c66ede31dde62ac64ca3c44f76 100644 (file)
@@ -226,7 +226,7 @@ enum Opt {
        Opt_nohidden,
        Opt_showmeta,
        Opt_acl,
-       Opt_nls,
+       Opt_iocharset,
        Opt_prealloc,
        Opt_no_acs_rules,
        Opt_err,
@@ -245,9 +245,13 @@ static const struct fs_parameter_spec ntfs_fs_parameters[] = {
        fsparam_flag_no("hidden",               Opt_nohidden),
        fsparam_flag_no("acl",                  Opt_acl),
        fsparam_flag_no("showmeta",             Opt_showmeta),
-       fsparam_string("nls",                   Opt_nls),
        fsparam_flag_no("prealloc",             Opt_prealloc),
        fsparam_flag("no_acs_rules",            Opt_no_acs_rules),
+       fsparam_string("iocharset",             Opt_iocharset),
+
+       __fsparam(fs_param_is_string,
+                 "nls", Opt_iocharset,
+                 fs_param_deprecated, NULL),
        {}
 };
 
@@ -346,7 +350,7 @@ static int ntfs_fs_parse_param(struct fs_context *fc,
        case Opt_showmeta:
                opts->showmeta = result.negated ? 0 : 1;
                break;
-       case Opt_nls:
+       case Opt_iocharset:
                kfree(opts->nls_name);
                opts->nls_name = param->string;
                param->string = NULL;
@@ -380,11 +384,11 @@ static int ntfs_fs_reconfigure(struct fs_context *fc)
        new_opts->nls = ntfs_load_nls(new_opts->nls_name);
        if (IS_ERR(new_opts->nls)) {
                new_opts->nls = NULL;
-               errorf(fc, "ntfs3: Cannot load nls %s", new_opts->nls_name);
+               errorf(fc, "ntfs3: Cannot load iocharset %s", new_opts->nls_name);
                return -EINVAL;
        }
        if (new_opts->nls != sbi->options->nls)
-               return invalf(fc, "ntfs3: Cannot use different nls when remounting!");
+               return invalf(fc, "ntfs3: Cannot use different iocharset when remounting!");
 
        sync_filesystem(sb);
 
@@ -528,9 +532,9 @@ static int ntfs_show_options(struct seq_file *m, struct dentry *root)
        if (opts->dmask)
                seq_printf(m, ",dmask=%04o", ~opts->fs_dmask_inv);
        if (opts->nls)
-               seq_printf(m, ",nls=%s", opts->nls->charset);
+               seq_printf(m, ",iocharset=%s", opts->nls->charset);
        else
-               seq_puts(m, ",nls=utf8");
+               seq_puts(m, ",iocharset=utf8");
        if (opts->sys_immutable)
                seq_puts(m, ",sys_immutable");
        if (opts->discard)