Blame SOURCES/0012-exfat-update-file-system-parameter-handling.patch

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