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>