On Tue, Mar 31, 2026 at 10:45 AM Jaegeuk Kim via Linux-f2fs-devel
<[email protected]> wrote:
>
> 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.
>
> Signed-off-by: Jaegeuk Kim <[email protected]>
> ---
>  fs/f2fs/super.c | 27 +++++++++++++++------------
>  1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> index 5330ef981340..aab4345f3ee7 100644
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c
> @@ -337,9 +337,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),
> @@ -980,26 +983,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;
> --
> 2.53.0.1118.gaef5881109-goog
>

Reviewed-by: Daeho Jeong <[email protected]>

>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel


_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to