diff options
author | Steve French <stfrench@microsoft.com> | 2021-06-24 22:28:04 +0200 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2021-06-24 23:09:10 +0200 |
commit | 0060a4f28a9ef45ae8163c0805e944a2b1546762 (patch) | |
tree | 8f0c78103b3d3c2051927deed1e430e90f297ad2 /fs/cifs/cifsglob.h | |
parent | cifs: missing null pointer check in cifs_mount (diff) | |
download | linux-0060a4f28a9ef45ae8163c0805e944a2b1546762.tar.xz linux-0060a4f28a9ef45ae8163c0805e944a2b1546762.zip |
cifs: fix missing spinlock around update to ses->status
In the other places where we update ses->status we protect the
updates via GlobalMid_Lock. So to be consistent add the same
locking around it in cifs_put_smb_ses where it was missing.
Addresses-Coverity: 1268904 ("Data race condition")
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/cifsglob.h')
-rw-r--r-- | fs/cifs/cifsglob.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index 988346904fd0..fc6b08e5ebbc 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h @@ -887,7 +887,7 @@ struct cifs_ses { struct mutex session_mutex; struct TCP_Server_Info *server; /* pointer to server info */ int ses_count; /* reference counter */ - enum statusEnum status; + enum statusEnum status; /* updates protected by GlobalMid_Lock */ unsigned overrideSecFlg; /* if non-zero override global sec flags */ char *serverOS; /* name of operating system underlying server */ char *serverNOS; /* name of network operating system of server */ @@ -1785,6 +1785,7 @@ require use of the stronger protocol */ * list operations on pending_mid_q and oplockQ * updates to XID counters, multiplex id and SMB sequence numbers * list operations on global DnotifyReqList + * updates to ses->status * tcp_ses_lock protects: * list operations on tcp and SMB session lists * tcon->open_file_lock protects the list of open files hanging off the tcon |