mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
cifs: add missing spinlock around tcon refcount
Add missing spinlock to protect updates on tcon refcount in
cifs_put_tcon().
Fixes: d7d7a66aac
("cifs: avoid use of global locks for high contention data")
Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
bedc8f76b3
commit
621a41ae08
@ -2345,7 +2345,9 @@ cifs_put_tcon(struct cifs_tcon *tcon)
|
||||
ses = tcon->ses;
|
||||
cifs_dbg(FYI, "%s: tc_count=%d\n", __func__, tcon->tc_count);
|
||||
spin_lock(&cifs_tcp_ses_lock);
|
||||
spin_lock(&tcon->tc_lock);
|
||||
if (--tcon->tc_count > 0) {
|
||||
spin_unlock(&tcon->tc_lock);
|
||||
spin_unlock(&cifs_tcp_ses_lock);
|
||||
return;
|
||||
}
|
||||
@ -2354,6 +2356,7 @@ cifs_put_tcon(struct cifs_tcon *tcon)
|
||||
WARN_ON(tcon->tc_count < 0);
|
||||
|
||||
list_del_init(&tcon->tcon_list);
|
||||
spin_unlock(&tcon->tc_lock);
|
||||
spin_unlock(&cifs_tcp_ses_lock);
|
||||
|
||||
/* cancel polling of interfaces */
|
||||
|
Loading…
Reference in New Issue
Block a user