diff options
Diffstat (limited to 'fs/9p/vfs_inode_dotl.c')
| -rw-r--r-- | fs/9p/vfs_inode_dotl.c | 3 | 
1 files changed, 3 insertions, 0 deletions
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);  | 
