From: Brian Behlendorf Date: Fri, 28 May 2010 20:46:45 +0000 (-0700) Subject: Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t X-Git-Tag: zfs-0.5.0~38^2^2~1^2^2~34^2^2^2~12^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab1a68b225712816f1af3c144c0cc4762193f25f;p=zfs Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t Conflicts: module/zfs/dnode_sync.c --- ab1a68b225712816f1af3c144c0cc4762193f25f diff --cc module/zfs/dbuf.c index 2fdd6b13d,42ae43997..6c3c853d2 --- a/module/zfs/dbuf.c +++ b/module/zfs/dbuf.c @@@ -2056,11 -2182,8 +2182,12 @@@ dbuf_sync_leaf(dbuf_dirty_record_t *dr while (*drp != dr) drp = &(*drp)->dr_next; ASSERT(dr->dr_next == NULL); + ASSERT(dr->dr_dbuf == db); *drp = dr->dr_next; + if (dr->dr_dbuf->db_level != 0) { + mutex_destroy(&dr->dt.di.dr_mtx); + list_destroy(&dr->dt.di.dr_children); + } kmem_free(dr, sizeof (dbuf_dirty_record_t)); ASSERT(db->db_dirtycnt > 0); db->db_dirtycnt -= 1;