smb3: if max_channels set to more than one channel request multichannel
authorSteve French <stfrench@microsoft.com>
Sat, 8 May 2021 00:33:51 +0000 (19:33 -0500)
committerSteve French <stfrench@microsoft.com>
Sat, 8 May 2021 15:51:06 +0000 (10:51 -0500)
Mounting with "multichannel" is obviously implied if user requested
more than one channel on mount (ie mount parm max_channels>1).
Currently both have to be specified. Fix that so that if max_channels
is greater than 1 on mount, enable multichannel rather than silently
falling back to non-multichannel.

Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-By: Tom Talpey <tom@talpey.com>
Cc: <stable@vger.kernel.org> # v5.11+
Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
fs/cifs/fs_context.c

index 3bcf881..5d21cd9 100644 (file)
@@ -1021,6 +1021,9 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
                        goto cifs_parse_mount_err;
                }
                ctx->max_channels = result.uint_32;
+               /* If more than one channel requested ... they want multichan */
+               if (result.uint_32 > 1)
+                       ctx->multichannel = true;
                break;
        case Opt_handletimeout:
                ctx->handle_timeout = result.uint_32;