2022-07-29 07:46:02

by Yang Yingliang

[permalink] [raw]
Subject: [PATCH -next] cifs: fix wrong unlock before return from cifs_tree_connect()

It should unlock 'tcon->tc_lock' before return from cifs_tree_connect().

Fixes: fe67bd563ec2 ("cifs: avoid use of global locks for high contention data")
Signed-off-by: Yang Yingliang <[email protected]>
---
fs/cifs/connect.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 931d4b6fafc8..1362210f3ece 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -4583,7 +4583,7 @@ int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, const stru
if (tcon->ses->ses_status != SES_GOOD ||
(tcon->status != TID_NEW &&
tcon->status != TID_NEED_TCON)) {
- spin_unlock(&tcon->ses->ses_lock);
+ spin_unlock(&tcon->tc_lock);
return 0;
}
tcon->status = TID_IN_TCON;
--
2.25.1


2022-07-29 16:32:58

by Steve French

[permalink] [raw]
Subject: Re: [PATCH -next] cifs: fix wrong unlock before return from cifs_tree_connect()

merged into cifs-2.6.git for-next

On Fri, Jul 29, 2022 at 2:45 AM Yang Yingliang <[email protected]> wrote:
>
> It should unlock 'tcon->tc_lock' before return from cifs_tree_connect().
>
> Fixes: fe67bd563ec2 ("cifs: avoid use of global locks for high contention data")
> Signed-off-by: Yang Yingliang <[email protected]>
> ---
> fs/cifs/connect.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index 931d4b6fafc8..1362210f3ece 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -4583,7 +4583,7 @@ int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, const stru
> if (tcon->ses->ses_status != SES_GOOD ||
> (tcon->status != TID_NEW &&
> tcon->status != TID_NEED_TCON)) {
> - spin_unlock(&tcon->ses->ses_lock);
> + spin_unlock(&tcon->tc_lock);
> return 0;
> }
> tcon->status = TID_IN_TCON;
> --
> 2.25.1
>


--
Thanks,

Steve

2022-08-01 02:38:37

by Shyam Prasad N

[permalink] [raw]
Subject: Re: [PATCH -next] cifs: fix wrong unlock before return from cifs_tree_connect()

On Fri, Jul 29, 2022 at 9:08 PM Steve French <[email protected]> wrote:
>
> merged into cifs-2.6.git for-next
>
> On Fri, Jul 29, 2022 at 2:45 AM Yang Yingliang <[email protected]> wrote:
> >
> > It should unlock 'tcon->tc_lock' before return from cifs_tree_connect().
> >
> > Fixes: fe67bd563ec2 ("cifs: avoid use of global locks for high contention data")
> > Signed-off-by: Yang Yingliang <[email protected]>
> > ---
> > fs/cifs/connect.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> > index 931d4b6fafc8..1362210f3ece 100644
> > --- a/fs/cifs/connect.c
> > +++ b/fs/cifs/connect.c
> > @@ -4583,7 +4583,7 @@ int cifs_tree_connect(const unsigned int xid, struct cifs_tcon *tcon, const stru
> > if (tcon->ses->ses_status != SES_GOOD ||
> > (tcon->status != TID_NEW &&
> > tcon->status != TID_NEED_TCON)) {
> > - spin_unlock(&tcon->ses->ses_lock);
> > + spin_unlock(&tcon->tc_lock);
> > return 0;
> > }
> > tcon->status = TID_IN_TCON;
> > --
> > 2.25.1
> >
>
>
> --
> Thanks,
>
> Steve

Good catch. Looks good to me.

--
Regards,
Shyam