]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
cifs: client: force multichannel=off when max_channels=1
authorRajasi Mandal <rajasimandal@microsoft.com>
Mon, 22 Sep 2025 08:24:16 +0000 (08:24 +0000)
committerSteve French <stfrench@microsoft.com>
Thu, 2 Oct 2025 03:42:15 +0000 (22:42 -0500)
Previously, specifying both multichannel and max_channels=1 as mount
options would leave multichannel enabled, even though it is not
meaningful when only one channel is allowed. This led to confusion and
inconsistent behavior, as the client would advertise multichannel
capability but never establish secondary channels.

Fix this by forcing multichannel to false whenever max_channels=1,
ensuring the mount configuration is consistent and matches user intent.
This prevents the client from advertising or attempting multichannel
support when it is not possible.

Signed-off-by: Rajasi Mandal <rajasimandal@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/fs_context.c

index 072383899e8171aeff5596b55794a7e50845179a..43552b44f613be212aead4fe983287b9ed012d64 100644 (file)
@@ -1820,6 +1820,13 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
                goto cifs_parse_mount_err;
        }
 
+       /*
+        * Multichannel is not meaningful if max_channels is 1.
+        * Force multichannel to false to ensure consistent configuration.
+        */
+       if (ctx->multichannel && ctx->max_channels == 1)
+               ctx->multichannel = false;
+
        return 0;
 
  cifs_parse_mount_err: