Commit abd0e040 authored by Eric Sandeen's avatar Eric Sandeen Committed by Jaegeuk Kim
Browse files

f2fs: factor out an f2fs_default_check function



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: default avatarEric Sandeen <sandeen@redhat.com>
Reviewed-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 277352b6
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -690,7 +690,7 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
	int ret;

	if (!options)
		goto default_check;
		return 0;

	while ((p = strsep(&options, ",")) != NULL) {
		int token;
@@ -1324,7 +1324,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;
@@ -2384,6 +2388,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);

@@ -4539,6 +4547,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;