usr/src/uts/common/fs/zfs/sys/zfs_znode.h
changeset 4787 602d3f97842c
parent 4577 ed36b0e652bc
child 5147 5e950ccc9585
--- a/usr/src/uts/common/fs/zfs/sys/zfs_znode.h	Thu Aug 02 19:52:58 2007 -0700
+++ b/usr/src/uts/common/fs/zfs/sys/zfs_znode.h	Thu Aug 02 21:23:46 2007 -0700
@@ -192,13 +192,15 @@
  */
 #define	ZFS_ENTER(zfsvfs) \
 	{ \
-		atomic_add_32(&(zfsvfs)->z_op_cnt, 1); \
-		if ((zfsvfs)->z_unmounted1) { \
+		if (rw_tryenter(&(zfsvfs)->z_unmount_lock, RW_READER) == 0) \
+			return (EIO); \
+		if ((zfsvfs)->z_unmounted) { \
 			ZFS_EXIT(zfsvfs); \
 			return (EIO); \
 		} \
 	}
-#define	ZFS_EXIT(zfsvfs) atomic_add_32(&(zfsvfs)->z_op_cnt, -1)
+
+#define	ZFS_EXIT(zfsvfs) rw_exit(&(zfsvfs)->z_unmount_lock)
 
 /*
  * Macros for dealing with dmu_buf_hold