smb: client: fix regression with mount options parsing
authorPaulo Alcantara <pc@manguebit.org>
Wed, 11 Feb 2026 04:10:07 +0000 (01:10 -0300)
committerSteve French <stfrench@microsoft.com>
Thu, 12 Feb 2026 20:22:28 +0000 (14:22 -0600)
After commit 1ef15fbe6771 ("cifs: client: enforce consistent handling
of multichannel and max_channels"), invalid mount options started to
be ignored, allowing cifs.ko to proceed with the mount instead of
baling out.

The problem was related to smb3_handle_conflicting_options() being
called even when an invalid parameter had been parsed, overwriting the
return value of vfs_parse_fs_string() in
smb3_fs_context_parse_monolithic().

Fix this by calling smb3_handle_conflicting_options() only when a
valid mount option has been passed.

Reproducer:

$ mount.cifs //srv/share /mnt -o ${opts}
$ mount -o remount,foo,${opts} /mnt # must fail

Fixes: 1ef15fbe6771 ("cifs: client: enforce consistent handling of multichannel and max_channels")
Reported-by: Xiaoli Feng <xifeng@redhat.com>
Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Cc: David Howells <dhowells@redhat.com>
Cc: linux-cifs@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/fs_context.c

index ec84204..412c5b5 100644 (file)
@@ -825,9 +825,7 @@ static int smb3_fs_context_parse_monolithic(struct fs_context *fc,
                if (ret < 0)
                        break;
        }
-       ret = smb3_handle_conflicting_options(fc);
-
-       return ret;
+       return ret ?: smb3_handle_conflicting_options(fc);
 }
 
 /*