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 0723838..43552b4 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: