summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve French <stfrench@microsoft.com>2025-04-06 14:09:19 -0500
committerSteve French <stfrench@microsoft.com>2025-04-07 01:08:07 -0500
commitb365b9d404b7376c60c91cd079218bfef11b7822 (patch)
tree0b9fce04b3b57d77c8059ba8a9dab7bde378ebc8
parent6f8a394aa952257575910d57cf0a63627fa949a2 (diff)
downloadlinux-b365b9d404b7376c60c91cd079218bfef11b7822.tar.gz
linux-b365b9d404b7376c60c91cd079218bfef11b7822.tar.bz2
linux-b365b9d404b7376c60c91cd079218bfef11b7822.zip
smb311 client: fix missing tcon check when mounting with linux/posix extensions
When mounting the same share twice, once with the "linux" mount parameter (or equivalently "posix") and then once without (or e.g. with "nolinux"), we were incorrectly reusing the same tree connection for both mounts. This meant that the first mount of the share on the client, would cause subsequent mounts of that same share on the same client to ignore that mount parm ("linux" vs. "nolinux") and incorrectly reuse the same tcon. Cc: stable@vger.kernel.org Signed-off-by: Steve French <stfrench@microsoft.com>
-rw-r--r--fs/smb/client/connect.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/smb/client/connect.c b/fs/smb/client/connect.c
index f298e86a3c1f..4a0b2d220fe8 100644
--- a/fs/smb/client/connect.c
+++ b/fs/smb/client/connect.c
@@ -2556,6 +2556,8 @@ static int match_tcon(struct cifs_tcon *tcon, struct smb3_fs_context *ctx)
return 0;
if (tcon->nodelete != ctx->nodelete)
return 0;
+ if (tcon->posix_extensions != ctx->linux_ext)
+ return 0;
return 1;
}