diff --git a/sys/vfs/fuse/fuse_vfsops.c b/sys/vfs/fuse/fuse_vfsops.c --- a/sys/vfs/fuse/fuse_vfsops.c +++ b/sys/vfs/fuse/fuse_vfsops.c @@ -209,7 +209,11 @@ error = fuse_ipc_tx(fip); if (error) { + fuse_ipc_put(fip); vrele(devvp); + fuse_node_free(fmp, fmp->rfnp); + mp->mnt_data = NULL; + fuse_mount_free(fmp); return error; } @@ -221,6 +225,9 @@ if (fuse_cmp_version(fmp, 7, 0) < 0) { fuse_ipc_put(fip); vrele(devvp); + fuse_node_free(fmp, fmp->rfnp); + mp->mnt_data = NULL; + fuse_mount_free(fmp); return EPROTONOSUPPORT; }