Blame SOURCES/0021-exfat-add-the-dummy-mount-options-to-be-backward-com.patch

Kmods SIG 9e3ffb
From 907fa893258ba6076f5fff32900a461decb9e8c5 Mon Sep 17 00:00:00 2001
Kmods SIG 9e3ffb
From: Namjae Jeon <namjae.jeon@samsung.com>
Kmods SIG 9e3ffb
Date: Fri, 22 May 2020 08:10:10 +0900
Kmods SIG 9e3ffb
Subject: [Backport 907fa893258b] exfat: add the dummy mount options to be
Kmods SIG 9e3ffb
 backward compatible with staging/exfat
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
As Ubuntu and Fedora release new version used kernel version equal to or
Kmods SIG 9e3ffb
higher than v5.4, They started to support kernel exfat filesystem.
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
Linus reported a mount error with new version of exfat on Fedora:
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
        exfat: Unknown parameter 'namecase'
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
This is because there is a difference in mount option between old
Kmods SIG 9e3ffb
staging/exfat and new exfat.  And utf8, debug, and codepage options as
Kmods SIG 9e3ffb
well as namecase have been removed from new exfat.
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
This patch add the dummy mount options as deprecated option to be
Kmods SIG 9e3ffb
backward compatible with old one.
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Kmods SIG 9e3ffb
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Kmods SIG 9e3ffb
Cc: Matthew Wilcox <willy@infradead.org>
Kmods SIG 9e3ffb
Cc: Al Viro <viro@zeniv.linux.org.uk>
Kmods SIG 9e3ffb
Cc: Eric Sandeen <sandeen@sandeen.net>
Kmods SIG 9e3ffb
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Kmods SIG 9e3ffb
---
Kmods SIG 9e3ffb
 src/super.c | 19 +++++++++++++++++++
Kmods SIG 9e3ffb
 1 file changed, 19 insertions(+)
Kmods SIG 9e3ffb
Kmods SIG 9e3ffb
diff --git a/src/super.c b/src/super.c
Kmods SIG 9e3ffb
index 0565d5539d57c6678c81997228dc3b8116eb864c..a846ff555656cd876e77ae014b35e192b5ccd183 100644
Kmods SIG 9e3ffb
--- a/src/super.c
Kmods SIG 9e3ffb
+++ b/src/super.c
Kmods SIG 9e3ffb
@@ -203,6 +203,12 @@ enum {
Kmods SIG 9e3ffb
 	Opt_errors,
Kmods SIG 9e3ffb
 	Opt_discard,
Kmods SIG 9e3ffb
 	Opt_time_offset,
Kmods SIG 9e3ffb
+
Kmods SIG 9e3ffb
+	/* Deprecated options */
Kmods SIG 9e3ffb
+	Opt_utf8,
Kmods SIG 9e3ffb
+	Opt_debug,
Kmods SIG 9e3ffb
+	Opt_namecase,
Kmods SIG 9e3ffb
+	Opt_codepage,
Kmods SIG 9e3ffb
 };
Kmods SIG 9e3ffb
 
Kmods SIG 9e3ffb
 static const struct constant_table exfat_param_enums[] = {
Kmods SIG 9e3ffb
@@ -223,6 +229,14 @@ static const struct fs_parameter_spec exfat_parameters[] = {
Kmods SIG 9e3ffb
 	fsparam_enum("errors",			Opt_errors, exfat_param_enums),
Kmods SIG 9e3ffb
 	fsparam_flag("discard",			Opt_discard),
Kmods SIG 9e3ffb
 	fsparam_s32("time_offset",		Opt_time_offset),
Kmods SIG 9e3ffb
+	__fsparam(NULL, "utf8",			Opt_utf8, fs_param_deprecated,
Kmods SIG 9e3ffb
+		  NULL),
Kmods SIG 9e3ffb
+	__fsparam(NULL, "debug",		Opt_debug, fs_param_deprecated,
Kmods SIG 9e3ffb
+		  NULL),
Kmods SIG 9e3ffb
+	__fsparam(fs_param_is_u32, "namecase",	Opt_namecase,
Kmods SIG 9e3ffb
+		  fs_param_deprecated, NULL),
Kmods SIG 9e3ffb
+	__fsparam(fs_param_is_u32, "codepage",	Opt_codepage,
Kmods SIG 9e3ffb
+		  fs_param_deprecated, NULL),
Kmods SIG 9e3ffb
 	{}
Kmods SIG 9e3ffb
 };
Kmods SIG 9e3ffb
 
Kmods SIG 9e3ffb
@@ -278,6 +292,11 @@ static int exfat_parse_param(struct fs_context *fc, struct fs_parameter *param)
Kmods SIG 9e3ffb
 			return -EINVAL;
Kmods SIG 9e3ffb
 		opts->time_offset = result.int_32;
Kmods SIG 9e3ffb
 		break;
Kmods SIG 9e3ffb
+	case Opt_utf8:
Kmods SIG 9e3ffb
+	case Opt_debug:
Kmods SIG 9e3ffb
+	case Opt_namecase:
Kmods SIG 9e3ffb
+	case Opt_codepage:
Kmods SIG 9e3ffb
+		break;
Kmods SIG 9e3ffb
 	default:
Kmods SIG 9e3ffb
 		return -EINVAL;
Kmods SIG 9e3ffb
 	}
Kmods SIG 9e3ffb
-- 
Kmods SIG 9e3ffb
2.31.1
Kmods SIG 9e3ffb