Commit 9acd0d53 authored by Valdis Kletnieks's avatar Valdis Kletnieks Committed by Al Viro
Browse files

exfat: update file system parameter handling



Al Viro recently reworked the way file system parameters are handled
Update super.c to work with it in linux-next 20200203.

Signed-off-by: default avatarValdis Kletnieks <valdis.kletnieks@vt.edu>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 1a3c0509
Loading
Loading
Loading
Loading
+11 −17
Original line number Diff line number Diff line
@@ -214,7 +214,14 @@ enum {
	Opt_time_offset,
};

static const struct fs_parameter_spec exfat_param_specs[] = {
static const struct constant_table exfat_param_enums[] = {
	{ "continue",		EXFAT_ERRORS_CONT },
	{ "panic",		EXFAT_ERRORS_PANIC },
	{ "remount-ro",		EXFAT_ERRORS_RO },
	{}
};

static const struct fs_parameter_spec exfat_parameters[] = {
	fsparam_u32("uid",			Opt_uid),
	fsparam_u32("gid",			Opt_gid),
	fsparam_u32oct("umask",			Opt_umask),
@@ -222,25 +229,12 @@ static const struct fs_parameter_spec exfat_param_specs[] = {
	fsparam_u32oct("fmask",			Opt_fmask),
	fsparam_u32oct("allow_utime",		Opt_allow_utime),
	fsparam_string("iocharset",		Opt_charset),
	fsparam_enum("errors",			Opt_errors),
	fsparam_enum("errors",			Opt_errors, exfat_param_enums),
	fsparam_flag("discard",			Opt_discard),
	fsparam_s32("time_offset",		Opt_time_offset),
	{}
};

static const struct fs_parameter_enum exfat_param_enums[] = {
	{ Opt_errors,	"continue",		EXFAT_ERRORS_CONT },
	{ Opt_errors,	"panic",		EXFAT_ERRORS_PANIC },
	{ Opt_errors,	"remount-ro",		EXFAT_ERRORS_RO },
	{}
};

static const struct fs_parameter_description exfat_parameters = {
	.name		= "exfat",
	.specs		= exfat_param_specs,
	.enums		= exfat_param_enums,
};

static int exfat_parse_param(struct fs_context *fc, struct fs_parameter *param)
{
	struct exfat_sb_info *sbi = fc->s_fs_info;
@@ -248,7 +242,7 @@ static int exfat_parse_param(struct fs_context *fc, struct fs_parameter *param)
	struct fs_parse_result result;
	int opt;

	opt = fs_parse(fc, &exfat_parameters, param, &result);
	opt = fs_parse(fc, exfat_parameters, param, &result);
	if (opt < 0)
		return opt;

@@ -665,7 +659,7 @@ static struct file_system_type exfat_fs_type = {
	.owner			= THIS_MODULE,
	.name			= "exfat",
	.init_fs_context	= exfat_init_fs_context,
	.parameters		= &exfat_parameters,
	.parameters		= exfat_parameters,
	.kill_sb		= kill_block_super,
	.fs_flags		= FS_REQUIRES_DEV,
};