diff options
author | Shyam Prasad N <sprasad@microsoft.com> | 2021-11-06 14:31:53 +0300 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2021-11-07 08:09:37 +0300 |
commit | c9f1c19cf7c50949885fa5afdb2cb242d61a7fac (patch) | |
tree | fba6794d8dfa142d4dca0b8477318da4b01b4206 /fs/cifs/connect.c | |
parent | b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb (diff) | |
download | linux-c9f1c19cf7c50949885fa5afdb2cb242d61a7fac.tar.xz |
cifs: nosharesock should not share socket with future sessions
Today, when a new mount is done with nosharesock, we ensure
that we don't select an existing matching session. However,
we don't mark the connection as nosharesock, which means that
those could be shared with future sessions.
Fixed it with this commit. Also printing this info in DebugData.
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 0abbff4e4135..24742b7402d1 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -1217,7 +1217,13 @@ static int match_server(struct TCP_Server_Info *server, struct smb3_fs_context * { struct sockaddr *addr = (struct sockaddr *)&ctx->dstaddr; - if (ctx->nosharesock) + if (ctx->nosharesock) { + server->nosharesock = true; + return 0; + } + + /* this server does not share socket */ + if (server->nosharesock) return 0; /* If multidialect negotiation see if existing sessions match one */ |