|
Kmods SIG |
50e2b3 |
From 9acd0d53800c55c6e2186e29b6433daf24617451 Mon Sep 17 00:00:00 2001
|
|
Kmods SIG |
50e2b3 |
From: Valdis Kletnieks <valdis.kletnieks@vt.edu>
|
|
Kmods SIG |
50e2b3 |
Date: Mon, 2 Mar 2020 15:21:45 +0900
|
|
Kmods SIG |
50e2b3 |
Subject: [Backport 9acd0d53800c] exfat: update file system parameter handling
|
|
Kmods SIG |
50e2b3 |
|
|
Kmods SIG |
50e2b3 |
Al Viro recently reworked the way file system parameters are handled
|
|
Kmods SIG |
50e2b3 |
Update super.c to work with it in linux-next 20200203.
|
|
Kmods SIG |
50e2b3 |
|
|
Kmods SIG |
50e2b3 |
Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
|
|
Kmods SIG |
50e2b3 |
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
|
Kmods SIG |
50e2b3 |
Acked-by: Namjae Jeon <namjae.jeon@samsung.com>
|
|
Kmods SIG |
50e2b3 |
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
|
Kmods SIG |
50e2b3 |
---
|
|
Kmods SIG |
50e2b3 |
src/super.c | 28 +++++++++++-----------------
|
|
Kmods SIG |
50e2b3 |
1 file changed, 11 insertions(+), 17 deletions(-)
|
|
Kmods SIG |
50e2b3 |
|
|
Kmods SIG |
50e2b3 |
diff --git a/src/super.c b/src/super.c
|
|
Kmods SIG |
50e2b3 |
index f06e0b53e39325937be7512f01c031c93917d9a8..16ed202ef5279abc40b23d03cd346b4baf4c23d3 100644
|
|
Kmods SIG |
50e2b3 |
--- a/src/super.c
|
|
Kmods SIG |
50e2b3 |
+++ b/src/super.c
|
|
Kmods SIG |
50e2b3 |
@@ -214,7 +214,14 @@ enum {
|
|
Kmods SIG |
50e2b3 |
Opt_time_offset,
|
|
Kmods SIG |
50e2b3 |
};
|
|
Kmods SIG |
50e2b3 |
|
|
Kmods SIG |
50e2b3 |
-static const struct fs_parameter_spec exfat_param_specs[] = {
|
|
Kmods SIG |
50e2b3 |
+static const struct constant_table exfat_param_enums[] = {
|
|
Kmods SIG |
50e2b3 |
+ { "continue", EXFAT_ERRORS_CONT },
|
|
Kmods SIG |
50e2b3 |
+ { "panic", EXFAT_ERRORS_PANIC },
|
|
Kmods SIG |
50e2b3 |
+ { "remount-ro", EXFAT_ERRORS_RO },
|
|
Kmods SIG |
50e2b3 |
+ {}
|
|
Kmods SIG |
50e2b3 |
+};
|
|
Kmods SIG |
50e2b3 |
+
|
|
Kmods SIG |
50e2b3 |
+static const struct fs_parameter_spec exfat_parameters[] = {
|
|
Kmods SIG |
50e2b3 |
fsparam_u32("uid", Opt_uid),
|
|
Kmods SIG |
50e2b3 |
fsparam_u32("gid", Opt_gid),
|
|
Kmods SIG |
50e2b3 |
fsparam_u32oct("umask", Opt_umask),
|
|
Kmods SIG |
50e2b3 |
@@ -222,25 +229,12 @@ static const struct fs_parameter_spec exfat_param_specs[] = {
|
|
Kmods SIG |
50e2b3 |
fsparam_u32oct("fmask", Opt_fmask),
|
|
Kmods SIG |
50e2b3 |
fsparam_u32oct("allow_utime", Opt_allow_utime),
|
|
Kmods SIG |
50e2b3 |
fsparam_string("iocharset", Opt_charset),
|
|
Kmods SIG |
50e2b3 |
- fsparam_enum("errors", Opt_errors),
|
|
Kmods SIG |
50e2b3 |
+ fsparam_enum("errors", Opt_errors, exfat_param_enums),
|
|
Kmods SIG |
50e2b3 |
fsparam_flag("discard", Opt_discard),
|
|
Kmods SIG |
50e2b3 |
fsparam_s32("time_offset", Opt_time_offset),
|
|
Kmods SIG |
50e2b3 |
{}
|
|
Kmods SIG |
50e2b3 |
};
|
|
Kmods SIG |
50e2b3 |
|
|
Kmods SIG |
50e2b3 |
-static const struct fs_parameter_enum exfat_param_enums[] = {
|
|
Kmods SIG |
50e2b3 |
- { Opt_errors, "continue", EXFAT_ERRORS_CONT },
|
|
Kmods SIG |
50e2b3 |
- { Opt_errors, "panic", EXFAT_ERRORS_PANIC },
|
|
Kmods SIG |
50e2b3 |
- { Opt_errors, "remount-ro", EXFAT_ERRORS_RO },
|
|
Kmods SIG |
50e2b3 |
- {}
|
|
Kmods SIG |
50e2b3 |
-};
|
|
Kmods SIG |
50e2b3 |
-
|
|
Kmods SIG |
50e2b3 |
-static const struct fs_parameter_description exfat_parameters = {
|
|
Kmods SIG |
50e2b3 |
- .name = "exfat",
|
|
Kmods SIG |
50e2b3 |
- .specs = exfat_param_specs,
|
|
Kmods SIG |
50e2b3 |
- .enums = exfat_param_enums,
|
|
Kmods SIG |
50e2b3 |
-};
|
|
Kmods SIG |
50e2b3 |
-
|
|
Kmods SIG |
50e2b3 |
static int exfat_parse_param(struct fs_context *fc, struct fs_parameter *param)
|
|
Kmods SIG |
50e2b3 |
{
|
|
Kmods SIG |
50e2b3 |
struct exfat_sb_info *sbi = fc->s_fs_info;
|
|
Kmods SIG |
50e2b3 |
@@ -248,7 +242,7 @@ static int exfat_parse_param(struct fs_context *fc, struct fs_parameter *param)
|
|
Kmods SIG |
50e2b3 |
struct fs_parse_result result;
|
|
Kmods SIG |
50e2b3 |
int opt;
|
|
Kmods SIG |
50e2b3 |
|
|
Kmods SIG |
50e2b3 |
- opt = fs_parse(fc, &exfat_parameters, param, &result);
|
|
Kmods SIG |
50e2b3 |
+ opt = fs_parse(fc, exfat_parameters, param, &result);
|
|
Kmods SIG |
50e2b3 |
if (opt < 0)
|
|
Kmods SIG |
50e2b3 |
return opt;
|
|
Kmods SIG |
50e2b3 |
|
|
Kmods SIG |
50e2b3 |
@@ -665,7 +659,7 @@ static struct file_system_type exfat_fs_type = {
|
|
Kmods SIG |
50e2b3 |
.owner = THIS_MODULE,
|
|
Kmods SIG |
50e2b3 |
.name = "exfat",
|
|
Kmods SIG |
50e2b3 |
.init_fs_context = exfat_init_fs_context,
|
|
Kmods SIG |
50e2b3 |
- .parameters = &exfat_parameters,
|
|
Kmods SIG |
50e2b3 |
+ .parameters = exfat_parameters,
|
|
Kmods SIG |
50e2b3 |
.kill_sb = kill_block_super,
|
|
Kmods SIG |
50e2b3 |
.fs_flags = FS_REQUIRES_DEV,
|
|
Kmods SIG |
50e2b3 |
};
|
|
Kmods SIG |
50e2b3 |
--
|
|
Kmods SIG |
50e2b3 |
2.31.1
|
|
Kmods SIG |
50e2b3 |
|