On 3/4/25 01:12, Eric Sandeen wrote: > From: Eric Sandeen <sand...@sandeen.net> > > The current options parsing function both parses options and validates > them - factor the validation out to reduce the size of the function and > make transition to the new mount API possible, because under the new mount > API, options are parsed one at a time, and cannot all be tested at the end > of the parsing function. > > Signed-off-by: Eric Sandeen <sand...@redhat.com> > --- > fs/f2fs/super.c | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > index 29b3aa1ee99c..7cfd5e4e806e 100644 > --- a/fs/f2fs/super.c > +++ b/fs/f2fs/super.c > @@ -687,7 +687,7 @@ static int parse_options(struct super_block *sb, char > *options, bool is_remount) > int ret; > > if (!options) > - goto default_check;
Eric, do you know in which condition options can be NULL, mount w/o any specified options? If so, maybe we'd keep this in order to chech whether default options generated from default_options() is conflicted or not? What do you think? Thanks, > + return 0; > > while ((p = strsep(&options, ",")) != NULL) { > int token; > @@ -1318,7 +1318,11 @@ static int parse_options(struct super_block *sb, char > *options, bool is_remount) > return -EINVAL; > } > } > -default_check: > + return 0; > +} > + > +static int f2fs_default_check(struct f2fs_sb_info *sbi) > +{ > #ifdef CONFIG_QUOTA > if (f2fs_check_quota_options(sbi)) > return -EINVAL; > @@ -2364,6 +2368,10 @@ static int f2fs_remount(struct super_block *sb, int > *flags, char *data) > } > #endif > > + err = f2fs_default_check(sbi); > + if (err) > + goto restore_opts; > + > /* flush outstanding errors before changing fs state */ > flush_work(&sbi->s_error_work); > > @@ -4489,6 +4497,10 @@ static int f2fs_fill_super(struct super_block *sb, > void *data, int silent) > if (err) > goto free_options; > > + err = f2fs_default_check(sbi); > + if (err) > + goto free_options; > + > sb->s_maxbytes = max_file_blocks(NULL) << > le32_to_cpu(raw_super->log_blocksize); > sb->s_max_links = F2FS_LINK_MAX; _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel