svn commit: r203338 -
stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Xin LI
delphij at FreeBSD.org
Mon Feb 1 11:05:20 UTC 2010
Author: delphij
Date: Mon Feb 1 11:05:19 2010
New Revision: 203338
URL: http://svn.freebsd.org/changeset/base/203338
Log:
MFC r201406:
Reduce diff against OpenSolaris - move Giant acquire/release to
zfs_znode.c. As a side effect this also eliminates two potential
Giant leaks.
Approved by: re (kib)
Modified:
stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
Directory Properties:
stable/7/sys/ (props changed)
stable/7/sys/cddl/contrib/opensolaris/ (props changed)
stable/7/sys/contrib/dev/acpica/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
Modified: stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
==============================================================================
--- stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Mon Feb 1 10:56:12 2010 (r203337)
+++ stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Mon Feb 1 11:05:19 2010 (r203338)
@@ -557,9 +557,6 @@ zfs_rmnode(znode_t *zp)
dmu_tx_t *tx;
uint64_t acl_obj;
int error;
- int vfslocked;
-
- vfslocked = VFS_LOCK_GIANT(zfsvfs->z_vfs);
ASSERT(zp->z_phys->zp_links == 0);
@@ -593,7 +590,6 @@ zfs_rmnode(znode_t *zp)
*/
zfs_znode_dmu_fini(zp);
zfs_znode_free(zp);
- VFS_UNLOCK_GIANT(vfslocked);
return;
}
}
@@ -666,7 +662,6 @@ zfs_rmnode(znode_t *zp)
out:
if (xzp)
VN_RELE(ZTOV(xzp));
- VFS_UNLOCK_GIANT(vfslocked);
}
static uint64_t
Modified: stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
==============================================================================
--- stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Mon Feb 1 10:56:12 2010 (r203337)
+++ stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c Mon Feb 1 11:05:19 2010 (r203338)
@@ -1023,6 +1023,7 @@ zfs_zinactive(znode_t *zp)
vnode_t *vp = ZTOV(zp);
zfsvfs_t *zfsvfs = zp->z_zfsvfs;
uint64_t z_id = zp->z_id;
+ int vfslocked;
ASSERT(zp->z_dbuf && zp->z_phys);
@@ -1055,7 +1056,9 @@ zfs_zinactive(znode_t *zp)
ZFS_OBJ_HOLD_EXIT(zfsvfs, z_id);
ASSERT(vp->v_count == 0);
vrecycle(vp, curthread);
+ vfslocked = VFS_LOCK_GIANT(zfsvfs->z_vfs);
zfs_rmnode(zp);
+ VFS_UNLOCK_GIANT(vfslocked);
return;
}
mutex_exit(&zp->z_lock);
More information about the svn-src-stable-7
mailing list