diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 8f68280d752e2e49b0c1ae366937f56274072022..a69986c80328a542623e61b7f438cffee012afdb 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c @@ -1037,7 +1037,7 @@ static struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, result = v9fs_fid_add(dentry, fid); if (result < 0) - goto error; + goto error_iput; inst_out: if (v9ses->cache) @@ -1048,6 +1048,8 @@ static struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, d_add(dentry, inode); return NULL; +error_iput: + iput(inode); error: p9_client_clunk(fid);