Message ID | 20220914043451.18797-1-pc@cjr.nz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cifs: add missing spinlock around tcon refcount | expand |
LGTM On Wed, 14 Sept 2022 at 14:47, Paulo Alcantara <pc@cjr.nz> wrote: > > Add missing spinlock to protect updates on tcon refcount in > cifs_put_tcon(). > > Fixes: d7d7a66aacd6 ("cifs: avoid use of global locks for high contention data") > Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz> > --- > fs/cifs/connect.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c > index 251753d0a54b..23fc48aa2ed6 100644 > --- a/fs/cifs/connect.c > +++ b/fs/cifs/connect.c > @@ -2350,7 +2350,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; > } > @@ -2359,6 +2361,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 */ > -- > 2.37.3 >
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 251753d0a54b..23fc48aa2ed6 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -2350,7 +2350,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; } @@ -2359,6 +2361,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 */
Add missing spinlock to protect updates on tcon refcount in cifs_put_tcon(). Fixes: d7d7a66aacd6 ("cifs: avoid use of global locks for high contention data") Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz> --- fs/cifs/connect.c | 3 +++ 1 file changed, 3 insertions(+)