lkml.org 
[lkml]   [2022]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 01/06] 9p: fix fid refcount leak in v9fs_vfs_atomic_open_dotl
    Date
    On Sonntag, 12. Juni 2022 10:53:24 CEST Dominique Martinet wrote:
    > We need to release directory fid if we fail halfway through open
    >
    > This fixes fid leaking with xfstests generic 531
    >
    > Fixes: 6636b6dcc3db ("9p: add refcount to p9_fid struct")
    > Cc: stable@vger.kernel.org
    > Reported-by: Tyler Hicks <tyhicks@linux.microsoft.com>
    > Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>

    Reviewed-by: Christian Schoenebeck <linux_oss@crudebyte.com>

    > ---
    > fs/9p/vfs_inode_dotl.c | 3 +++
    > 1 file changed, 3 insertions(+)
    >
    > diff --git a/fs/9p/vfs_inode_dotl.c b/fs/9p/vfs_inode_dotl.c
    > index d17502a738a9..b6eb1160296c 100644
    > --- a/fs/9p/vfs_inode_dotl.c
    > +++ b/fs/9p/vfs_inode_dotl.c
    > @@ -274,6 +274,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct
    > dentry *dentry, if (IS_ERR(ofid)) {
    > err = PTR_ERR(ofid);
    > p9_debug(P9_DEBUG_VFS, "p9_client_walk failed %d\n", err);
    > + p9_client_clunk(dfid);
    > goto out;
    > }
    >
    > @@ -285,6 +286,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct
    > dentry *dentry, if (err) {
    > p9_debug(P9_DEBUG_VFS, "Failed to get acl values in creat %d\n",
    > err);
    > + p9_client_clunk(dfid);
    > goto error;
    > }
    > err = p9_client_create_dotl(ofid, name, v9fs_open_to_dotl_flags(flags),
    > @@ -292,6 +294,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct
    > dentry *dentry, if (err < 0) {
    > p9_debug(P9_DEBUG_VFS, "p9_client_open_dotl failed in creat %d\n",
    > err);
    > + p9_client_clunk(dfid);
    > goto error;
    > }
    > v9fs_invalidate_inode_attr(dir);




    \
     
     \ /
      Last update: 2022-06-14 15:19    [W:4.095 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site