diff options
-rw-r--r-- | kernel/fuse_vnops.c | 4 |
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, |