tentatively merged into cifs-2.6.git for-next pending testing On Fri, Nov 11, 2022 at 12:07 AM Zhang Xiaoxu <zhangxiaoxu5@xxxxxxxxxx> wrote: > > If the tlink setup failed, lost to put the connections, then > the module refcnt leak since the cifsd kthread not exit. > > Also leak the fscache info, and for next mount with fsc, it will > print the follow errors: > CIFS: Cache volume key already in use (cifs,127.0.0.1:445,TEST) > > Let's check the result of tlink setup, and do some cleanup. > > Fixes: 56c762eb9bee ("cifs: Refactor out cifs_mount()") > Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@xxxxxxxxxx> > --- > v2: goto error rather than only put connections. > > fs/cifs/connect.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c > index 1cc47dd3b4d6..9db9527c61cf 100644 > --- a/fs/cifs/connect.c > +++ b/fs/cifs/connect.c > @@ -3855,9 +3855,13 @@ int cifs_mount(struct cifs_sb_info *cifs_sb, struct smb3_fs_context *ctx) > uuid_copy(&cifs_sb->dfs_mount_id, &mnt_ctx.mount_id); > > out: > - free_xid(mnt_ctx.xid); > cifs_try_adding_channels(cifs_sb, mnt_ctx.ses); > - return mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); > + rc = mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); > + if (rc) > + goto error; > + > + free_xid(mnt_ctx.xid); > + return rc; > > error: > dfs_cache_put_refsrv_sessions(&mnt_ctx.mount_id); > @@ -3884,8 +3888,12 @@ int cifs_mount(struct cifs_sb_info *cifs_sb, struct smb3_fs_context *ctx) > goto error; > } > > + rc = mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); > + if (rc) > + goto error; > + > free_xid(mnt_ctx.xid); > - return mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); > + return rc; > > error: > mount_put_conns(&mnt_ctx); > -- > 2.31.1 > -- Thanks, Steve