summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2016-07-13 09:50:07 +0000
committeravg <avg@FreeBSD.org>2016-07-13 09:50:07 +0000
commit4971924cb169443dd964c231c6111798b46d9841 (patch)
tree0f7cafef74a0fad6bce49b90b4ba81432b4073b3
parent1980e30bd7bab8145f0dd0965b7da603342e7764 (diff)
downloadFreeBSD-src-4971924cb169443dd964c231c6111798b46d9841.zip
FreeBSD-src-4971924cb169443dd964c231c6111798b46d9841.tar.gz
MFC r301273: zfs_root: fix a potential root vnode reference leak
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
index d4f51c7..9bb6091 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
@@ -1781,11 +1781,13 @@ zfs_root(vfs_t *vfsp, int flags, vnode_t **vpp)
ZFS_EXIT(zfsvfs);
- if (error == 0)
+ if (error == 0) {
error = vn_lock(*vpp, flags);
- if (error != 0)
- *vpp = NULL;
-
+ if (error != 0) {
+ VN_RELE(*vpp);
+ *vpp = NULL;
+ }
+ }
return (error);
}
OpenPOWER on IntegriCloud