summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2009-08-17 09:21:39 +0000
committerpjd <pjd@FreeBSD.org>2009-08-17 09:21:39 +0000
commitf46807b28d1a4f33c152d8a8974bf491d134edd2 (patch)
tree73830843f7dd2a2279870654516c856a83ca115e /sys/cddl/contrib/opensolaris/uts/common/fs/zfs
parent3b760e60f0f60676ace81a2e1598b30f5d6e6452 (diff)
downloadFreeBSD-src-f46807b28d1a4f33c152d8a8974bf491d134edd2.zip
FreeBSD-src-f46807b28d1a4f33c152d8a8974bf491d134edd2.tar.gz
- We need to recycle vnode instead of freeing znode.
Submitted by: avg - Add missing vnode interlock unlock. - Remove redundant znode locking. Approved by: re (kib)
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
index 8e2f337..ac75cc2 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
@@ -3709,12 +3709,11 @@ zfs_inactive(vnode_t *vp, cred_t *cr, caller_context_t *ct)
* The fs has been unmounted, or we did a
* suspend/resume and this file no longer exists.
*/
- mutex_enter(&zp->z_lock);
VI_LOCK(vp);
vp->v_count = 0; /* count arrives as 1 */
- mutex_exit(&zp->z_lock);
+ VI_UNLOCK(vp);
+ vrecycle(vp, curthread);
rw_exit(&zfsvfs->z_teardown_inactive_lock);
- zfs_znode_free(zp);
return;
}
OpenPOWER on IntegriCloud