Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Aug 2009 21:07:05 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r196716 - user/kmacy/head_zfs_merge/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <200908312107.n7VL75Zu039081@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Mon Aug 31 21:07:05 2009
New Revision: 196716
URL: http://svn.freebsd.org/changeset/base/196716

Log:
  rlock dnode where it is only read

Modified:
  user/kmacy/head_zfs_merge/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c

Modified: user/kmacy/head_zfs_merge/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
==============================================================================
--- user/kmacy/head_zfs_merge/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c	Mon Aug 31 21:04:33 2009	(r196715)
+++ user/kmacy/head_zfs_merge/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c	Mon Aug 31 21:07:05 2009	(r196716)
@@ -621,16 +621,16 @@ dnode_hold_impl(objset_impl_t *os, uint6
 		}
 	}
 
-	mutex_enter(&dn->dn_mtx);
+	rw_enter(&dn->dn_mtx, RW_READER);
 	type = dn->dn_type;
 	if (dn->dn_free_txg ||
 	    ((flag & DNODE_MUST_BE_ALLOCATED) && type == DMU_OT_NONE) ||
 	    ((flag & DNODE_MUST_BE_FREE) && type != DMU_OT_NONE)) {
-		mutex_exit(&dn->dn_mtx);
+		rw_exit(&dn->dn_mtx);
 		dbuf_rele(db, FTAG);
 		return (type == DMU_OT_NONE ? ENOENT : EEXIST);
 	}
-	mutex_exit(&dn->dn_mtx);
+	rw_exit(&dn->dn_mtx);
 
 	if (refcount_add(&dn->dn_holds, tag) == 1)
 		dbuf_add_ref(db, dn);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908312107.n7VL75Zu039081>