summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/fuse_vnops.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/fuse_vnops.c b/kernel/fuse_vnops.c
index 237283f..40c5158 100644
--- a/kernel/fuse_vnops.c
+++ b/kernel/fuse_vnops.c
@@ -629,6 +629,10 @@ get_filehandle(struct vnode *vp, int flag, struct cred *credp,
DTRACE_PROBE3(get_filehandle_err_create,
char *, "create_filehandle request failed",
int, err, struct vnode *, vp);
+ /* release the vnode, if creation failed */
+ VFS_RELE(vp->v_vfsp);
+ vp->v_data = NULL;
+ vn_free(vp);
goto out;
} else if (msgp && msgp->opdata.outdata) {
DTRACE_PROBE2(get_filehandle_info_create_ok,