Commit 621a41ae authored by Paulo Alcantara's avatar Paulo Alcantara Committed by Steve French
Browse files

cifs: add missing spinlock around tcon refcount



Add missing spinlock to protect updates on tcon refcount in
cifs_put_tcon().

Fixes: d7d7a66a ("cifs: avoid use of global locks for high contention data")
Signed-off-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
Reviewed-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent bedc8f76
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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 */