fs/ntfs3: Add iocharset= mount option as alias for nls=

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>
This commit is contained in:
Kari Argillander 2021-09-07 18:35:55 +03:00 коммит произвёл Konstantin Komarov
Родитель 9d1939f457
Коммит e274cde8c7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: A9B0331F832407B6
2 изменённых файлов: 13 добавлений и 9 удалений

Просмотреть файл

@ -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=

Просмотреть файл

@ -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)