smb3: fix posix extensions mount option
authorSteve French <stfrench@microsoft.com>
Mon, 23 Aug 2021 18:52:12 +0000 (13:52 -0500)
committerSteve French <stfrench@microsoft.com>
Wed, 25 Aug 2021 20:43:12 +0000 (15:43 -0500)
We were incorrectly initializing the posix extensions in the
conversion to the new mount API.

CC: <stable@vger.kernel.org> # 5.11+
Reported-by: Christian Brauner <christian.brauner@ubuntu.com>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Suggested-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/fs_context.c

index eed59bc..727c883 100644 (file)
@@ -1266,10 +1266,17 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
                        ctx->posix_paths = 1;
                break;
        case Opt_unix:
-               if (result.negated)
+               if (result.negated) {
+                       if (ctx->linux_ext == 1)
+                               pr_warn_once("conflicting posix mount options specified\n");
                        ctx->linux_ext = 0;
-               else
                        ctx->no_linux_ext = 1;
+               } else {
+                       if (ctx->no_linux_ext == 1)
+                               pr_warn_once("conflicting posix mount options specified\n");
+                       ctx->linux_ext = 1;
+                       ctx->no_linux_ext = 0;
+               }
                break;
        case Opt_nocase:
                ctx->nocase = 1;