Merge branch 'fix-dbuf_dirty_record_t' into refs/top-bases/fix-branch

This commit is contained in:
Brian Behlendorf 2008-12-03 16:55:12 -08:00
commit 53b2172d24
3 changed files with 8 additions and 0 deletions

View File

@ -1988,6 +1988,10 @@ dbuf_sync_leaf(dbuf_dirty_record_t *dr, dmu_tx_t *tx)
drp = &(*drp)->dr_next; drp = &(*drp)->dr_next;
ASSERT(dr->dr_next == NULL); ASSERT(dr->dr_next == NULL);
*drp = dr->dr_next; *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)); kmem_free(dr, sizeof (dbuf_dirty_record_t));
ASSERT(db->db_dirtycnt > 0); ASSERT(db->db_dirtycnt > 0);
db->db_dirtycnt -= 1; db->db_dirtycnt -= 1;

View File

@ -440,6 +440,8 @@ dnode_undirty_dbufs(list_t *list)
} else { } else {
mutex_exit(&db->db_mtx); mutex_exit(&db->db_mtx);
dnode_undirty_dbufs(&dr->dt.di.dr_children); dnode_undirty_dbufs(&dr->dt.di.dr_children);
mutex_destroy(&dr->dt.di.dr_mtx);
list_destroy(&dr->dt.di.dr_children);
} }
kmem_free(dr, sizeof (dbuf_dirty_record_t)); kmem_free(dr, sizeof (dbuf_dirty_record_t));
dbuf_rele(db, (void *)(uintptr_t)txg); dbuf_rele(db, (void *)(uintptr_t)txg);

View File

@ -1574,6 +1574,8 @@ zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *zplprops, dmu_tx_t *tx)
if (sense == ZFS_CASE_INSENSITIVE || sense == ZFS_CASE_MIXED) if (sense == ZFS_CASE_INSENSITIVE || sense == ZFS_CASE_MIXED)
zfsvfs.z_norm |= U8_TEXTPREP_TOUPPER; zfsvfs.z_norm |= U8_TEXTPREP_TOUPPER;
/* XXX - This must be destroyed but I'm not quite sure yet so
* I'm just annotating that fact when it's an issue. -Brian */
mutex_init(&zfsvfs.z_znodes_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&zfsvfs.z_znodes_lock, NULL, MUTEX_DEFAULT, NULL);
list_create(&zfsvfs.z_all_znodes, sizeof (znode_t), list_create(&zfsvfs.z_all_znodes, sizeof (znode_t),
offsetof(znode_t, z_link_node)); offsetof(znode_t, z_link_node));