Skip to content

Commit

Permalink
exfat: update file system parameter handling
Browse files Browse the repository at this point in the history
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: Valdis Kletnieks <valdis.kletnieks@vt.edu>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
valdisk authored and Al Viro committed Mar 6, 2020
1 parent 1a3c050 commit 9acd0d5
Showing 1 changed file with 11 additions and 17 deletions.
28 changes: 11 additions & 17 deletions fs/exfat/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,41 +214,35 @@ 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),
fsparam_u32oct("dmask", Opt_dmask),
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;
struct exfat_mount_options *opts = &sbi->options;
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;

Expand Down Expand Up @@ -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,
};
Expand Down

0 comments on commit 9acd0d5

Please sign in to comment.