diff options
author | avg <avg@FreeBSD.org> | 2016-07-13 09:50:07 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2016-07-13 09:50:07 +0000 |
commit | 4971924cb169443dd964c231c6111798b46d9841 (patch) | |
tree | 0f7cafef74a0fad6bce49b90b4ba81432b4073b3 | |
parent | 1980e30bd7bab8145f0dd0965b7da603342e7764 (diff) | |
download | FreeBSD-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.c | 10 |
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); } |