summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajasi Mandal <rajasimandal@microsoft.com>2025-09-22 08:24:16 +0000
committerSteve French <stfrench@microsoft.com>2025-10-01 22:42:15 -0500
commit37e263e68c5e27d5f1fbc1377f64f9373dc5bf15 (patch)
tree3de820eee9d9226a0fd7f25dee4e3f8ad57e60e8
parentaa12118dbcfe659697567c9daa0eac2c71e3fd37 (diff)
cifs: client: force multichannel=off when max_channels=1
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>
-rw-r--r--fs/smb/client/fs_context.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/smb/client/fs_context.c b/fs/smb/client/fs_context.c
index 072383899e81..43552b44f613 100644
--- a/fs/smb/client/fs_context.c
+++ b/fs/smb/client/fs_context.c
@@ -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: