diff options
author | Steve French <stfrench@microsoft.com> | 2021-07-01 19:22:47 +0200 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2021-07-03 01:35:25 +0200 |
commit | 01cf30825c8729884090151ab97f1c9c5d14a8bc (patch) | |
tree | d6d98ec0bffb80fb128a4a0bfbe58e6151805dc4 /fs/cifs/connect.c | |
parent | Merge tag '5.14-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 (diff) | |
download | linux-01cf30825c8729884090151ab97f1c9c5d14a8bc.tar.xz linux-01cf30825c8729884090151ab97f1c9c5d14a8bc.zip |
cifs: make locking consistent around the server session status
There were three places where we were not taking the spinlock
around updates to server->tcpStatus when it was being modified.
To be consistent (also removes Coverity warning) and to remove
possibility of race best to lock all places where it is updated.
Two of the three were in initialization of the field and can't
race - but added lock around the other.
Addresses-Coverity: 1399512 ("Data race condition")
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 | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 5d269f583dac..01dc45178f66 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -1403,6 +1403,11 @@ smbd_connected: goto out_err_crypto_release; } tcp_ses->min_offload = ctx->min_offload; + /* + * at this point we are the only ones with the pointer + * to the struct since the kernel thread not created yet + * no need to spinlock this update of tcpStatus + */ tcp_ses->tcpStatus = CifsNeedNegotiate; if ((ctx->max_credits < 20) || (ctx->max_credits > 60000)) |