> On Thu, May 21, 2020 at 10:44:28AM -0500, Eric Sandeen wrote: > > On 5/21/20 9:05 AM, Namjae Jeon wrote: > > > As Ubuntu and Fedora release new version used kernel version equal > > > to or higher than v5.4, They started to support kernel exfat filesystem. > > > > > > Linus Torvalds reported mount error with new version of exfat on Fedora. > > > > > > exfat: Unknown parameter 'namecase' > > > > > > This is because there is a difference in mount option between old > > > staging/exfat and new exfat. > > > And utf8, debug, and codepage options as well as namecase have been > > > removed from new exfat. > > > > > > This patch add the dummy mount options as deprecated option to be > > > backward compatible with old one. > > > > Wow, it seems wild that we'd need to maintain compatibility with > > options which only ever existed in a different codebase in a staging > > driver (what's the point of staging if every interface that makes it > > that far has to be maintained in perpetuity?) > > > > Often, when things are deprecated, they are eventually removed. > > Perhaps a future removal date stated in this commit, or in > > Documentation/..../exfat.txt would be good as a reminder to eventually remove this? > > For NFS, 'intr' has been deprecated since December 2007 and has been printing a warning since June > 2008. How long until we delete it? > > > > static const struct constant_table exfat_param_enums[] = { @@ > > > -223,6 +229,10 @@ static const struct fs_parameter_spec exfat_parameters[] = { > > > fsparam_enum("errors", Opt_errors, exfat_param_enums), > > > fsparam_flag("discard", Opt_discard), > > > fsparam_s32("time_offset", Opt_time_offset), > > > + fsparam_flag("utf8", Opt_utf8), > > > + fsparam_flag("debug", Opt_debug), > > > + fsparam_u32("namecase", Opt_namecase), > > > + fsparam_u32("codepage", Opt_codepage), > > __fsparam(NULL, "utf8", Opt_utf8, fs_param_deprecated, NULL), > __fsparam(NULL, "debug", Opt_debug, fs_param_deprecated, NULL), > __fsparam(fs_param_is_u32, "namecase", Opt_namecase, > fs_param_deprecated, NULL), > __fsparam(fs_param_is_u32, "codepage", Opt_codepage, > fs_param_deprecated, NULL), > > > > @@ -278,6 +288,18 @@ static int exfat_parse_param(struct fs_context *fc, struct fs_parameter > *param) > > > return -EINVAL; > > > opts->time_offset = result.int_32; > > > break; > > > + case Opt_utf8: > > > + pr_warn("exFAT-fs: 'utf8' mount option is deprecated and has no effect\n"); > > > + break; > > > + case Opt_debug: > > > + pr_warn("exFAT-fs: 'debug' mount option is deprecated and has no effect\n"); > > > + break; > > > + case Opt_namecase: > > > + pr_warn("exFAT-fs: 'namecase' mount option is deprecated and has no effect\n"); > > > + break; > > > + case Opt_codepage: > > > + pr_warn("exFAT-fs: 'codepage' mount option is deprecated and has no effect\n"); > > > + break; > > and then you don't need this hunk because the fs parser will print the deprecated message for you. Fixed it on v3. Thanks for your review!