mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 17:12:50 -04:00
f2fs: allow empty mount string for Opt_usr|grp|projjquota
The fsparam_string_empty() gives an error when mounting without string, since
its type is set to fsparam_flag in VFS. So, let's allow the flag as well.
This addresses xfstests/f2fs/015 and f2fs/021.
Fixes: d185351325 ("f2fs: separate the options parsing and options checking")
Reviewed-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
@@ -336,9 +336,12 @@ static const struct fs_parameter_spec f2fs_param_specs[] = {
|
||||
fsparam_flag("usrquota", Opt_usrquota),
|
||||
fsparam_flag("grpquota", Opt_grpquota),
|
||||
fsparam_flag("prjquota", Opt_prjquota),
|
||||
fsparam_string_empty("usrjquota", Opt_usrjquota),
|
||||
fsparam_string_empty("grpjquota", Opt_grpjquota),
|
||||
fsparam_string_empty("prjjquota", Opt_prjjquota),
|
||||
fsparam_string("usrjquota", Opt_usrjquota),
|
||||
fsparam_flag("usrjquota", Opt_usrjquota),
|
||||
fsparam_string("grpjquota", Opt_grpjquota),
|
||||
fsparam_flag("grpjquota", Opt_grpjquota),
|
||||
fsparam_string("prjjquota", Opt_prjjquota),
|
||||
fsparam_flag("prjjquota", Opt_prjjquota),
|
||||
fsparam_flag("nat_bits", Opt_nat_bits),
|
||||
fsparam_enum("jqfmt", Opt_jqfmt, f2fs_param_jqfmt),
|
||||
fsparam_enum("alloc_mode", Opt_alloc, f2fs_param_alloc_mode),
|
||||
@@ -979,26 +982,26 @@ static int f2fs_parse_param(struct fs_context *fc, struct fs_parameter *param)
|
||||
ctx_set_opt(ctx, F2FS_MOUNT_PRJQUOTA);
|
||||
break;
|
||||
case Opt_usrjquota:
|
||||
if (!*param->string)
|
||||
ret = f2fs_unnote_qf_name(fc, USRQUOTA);
|
||||
else
|
||||
if (param->type == fs_value_is_string && *param->string)
|
||||
ret = f2fs_note_qf_name(fc, USRQUOTA, param);
|
||||
else
|
||||
ret = f2fs_unnote_qf_name(fc, USRQUOTA);
|
||||
if (ret)
|
||||
return ret;
|
||||
break;
|
||||
case Opt_grpjquota:
|
||||
if (!*param->string)
|
||||
ret = f2fs_unnote_qf_name(fc, GRPQUOTA);
|
||||
else
|
||||
if (param->type == fs_value_is_string && *param->string)
|
||||
ret = f2fs_note_qf_name(fc, GRPQUOTA, param);
|
||||
else
|
||||
ret = f2fs_unnote_qf_name(fc, GRPQUOTA);
|
||||
if (ret)
|
||||
return ret;
|
||||
break;
|
||||
case Opt_prjjquota:
|
||||
if (!*param->string)
|
||||
ret = f2fs_unnote_qf_name(fc, PRJQUOTA);
|
||||
else
|
||||
if (param->type == fs_value_is_string && *param->string)
|
||||
ret = f2fs_note_qf_name(fc, PRJQUOTA, param);
|
||||
else
|
||||
ret = f2fs_unnote_qf_name(fc, PRJQUOTA);
|
||||
if (ret)
|
||||
return ret;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user