2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-06 04:33:58 +08:00

cifs: protect srv_count with cifs_tcp_ses_lock

Updates to the srv_count field are protected elsewhere
with the cifs_tcp_ses_lock spinlock.  Add one missing place
(cifs_get_tcp_sesion).

CC: Shyam Prasad N <sprasad@microsoft.com>
Addresses-Coverity: 1494149 ("Data Race Condition")
Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
Steve French 2021-11-15 18:02:27 -06:00
parent 0226487ad8
commit 446e21482e

View File

@ -1452,8 +1452,10 @@ cifs_get_tcp_session(struct smb3_fs_context *ctx,
tcp_ses->max_in_flight = 0; tcp_ses->max_in_flight = 0;
tcp_ses->credits = 1; tcp_ses->credits = 1;
if (primary_server) { if (primary_server) {
spin_lock(&cifs_tcp_ses_lock);
++primary_server->srv_count; ++primary_server->srv_count;
tcp_ses->primary_server = primary_server; tcp_ses->primary_server = primary_server;
spin_unlock(&cifs_tcp_ses_lock);
} }
init_waitqueue_head(&tcp_ses->response_q); init_waitqueue_head(&tcp_ses->response_q);
init_waitqueue_head(&tcp_ses->request_q); init_waitqueue_head(&tcp_ses->request_q);