2019-10-14 07:18:27

by Chuhong Yuan

[permalink] [raw]
Subject: [PATCH] cifs: Fix missed free operations

cifs_setattr_nounix has two paths which miss free operations
for xid and fullpath.
Use goto cifs_setattr_exit like other paths to fix them.

Fixes: aa081859b10c ("cifs: flush before set-info if we have writeable handles")
Signed-off-by: Chuhong Yuan <[email protected]>
---
fs/cifs/inode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 5dcc95b38310..df9377828e2f 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -2475,9 +2475,9 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
rc = tcon->ses->server->ops->flush(xid, tcon, &wfile->fid);
cifsFileInfo_put(wfile);
if (rc)
- return rc;
+ goto cifs_setattr_exit;
} else if (rc != -EBADF)
- return rc;
+ goto cifs_setattr_exit;
else
rc = 0;
}
--
2.20.1


2019-10-15 01:08:41

by Pavel Shilovsky

[permalink] [raw]
Subject: Re: [PATCH] cifs: Fix missed free operations

пн, 14 окт. 2019 г. в 00:18, Chuhong Yuan <[email protected]>:
>
> cifs_setattr_nounix has two paths which miss free operations
> for xid and fullpath.
> Use goto cifs_setattr_exit like other paths to fix them.
>
> Fixes: aa081859b10c ("cifs: flush before set-info if we have writeable handles")
> Signed-off-by: Chuhong Yuan <[email protected]>
> ---
> fs/cifs/inode.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> index 5dcc95b38310..df9377828e2f 100644
> --- a/fs/cifs/inode.c
> +++ b/fs/cifs/inode.c
> @@ -2475,9 +2475,9 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
> rc = tcon->ses->server->ops->flush(xid, tcon, &wfile->fid);
> cifsFileInfo_put(wfile);
> if (rc)
> - return rc;
> + goto cifs_setattr_exit;
> } else if (rc != -EBADF)
> - return rc;
> + goto cifs_setattr_exit;
> else
> rc = 0;
> }
> --
> 2.20.1
>

Looks good, thanks.

Reviewed-by: Pavel Shilovsky <[email protected]>

The original patch was tagged for stable, so, it seems that this one
should be tagged too.

--
Best regards,
Pavel Shilovsky

2019-10-15 05:40:23

by Steve French

[permalink] [raw]
Subject: Re: [PATCH] cifs: Fix missed free operations

Merged into cifs-2.6.git for-next and cc: stable for 5.3

On Mon, Oct 14, 2019 at 4:43 PM Pavel Shilovsky via samba-technical
<[email protected]> wrote:
>
> пн, 14 окт. 2019 г. в 00:18, Chuhong Yuan <[email protected]>:
> >
> > cifs_setattr_nounix has two paths which miss free operations
> > for xid and fullpath.
> > Use goto cifs_setattr_exit like other paths to fix them.
> >
> > Fixes: aa081859b10c ("cifs: flush before set-info if we have writeable handles")
> > Signed-off-by: Chuhong Yuan <[email protected]>
> > ---
> > fs/cifs/inode.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
> > index 5dcc95b38310..df9377828e2f 100644
> > --- a/fs/cifs/inode.c
> > +++ b/fs/cifs/inode.c
> > @@ -2475,9 +2475,9 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs)
> > rc = tcon->ses->server->ops->flush(xid, tcon, &wfile->fid);
> > cifsFileInfo_put(wfile);
> > if (rc)
> > - return rc;
> > + goto cifs_setattr_exit;
> > } else if (rc != -EBADF)
> > - return rc;
> > + goto cifs_setattr_exit;
> > else
> > rc = 0;
> > }
> > --
> > 2.20.1
> >
>
> Looks good, thanks.
>
> Reviewed-by: Pavel Shilovsky <[email protected]>
>
> The original patch was tagged for stable, so, it seems that this one
> should be tagged too.
>
> --
> Best regards,
> Pavel Shilovsky
>


--
Thanks,

Steve