exfat: update file system parameter handling
authorValdis Kletnieks <valdis.kletnieks@vt.edu>
Mon, 2 Mar 2020 06:21:45 +0000 (15:21 +0900)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 6 Mar 2020 02:00:40 +0000 (21:00 -0500)
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>
fs/exfat/super.c

index f06e0b53e39325937be7512f01c031c93917d9a8..16ed202ef5279abc40b23d03cd346b4baf4c23d3 100644 (file)
@@ -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,
 };