summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/dsl_pool.c
diff options
context:
space:
mode:
authormaybee <none@none>2007-03-26 12:01:20 -0700
committermaybee <none@none>2007-03-26 12:01:20 -0700
commitaf2c4821c0a23e873f2a63bca4145080aa2183e3 (patch)
tree0d586a6ce404e8dbdb86199692778a2e9babcae6 /usr/src/uts/common/fs/zfs/dsl_pool.c
parent1e7ef456443516ebe1cb6722f4133b6f1f165284 (diff)
downloadillumos-gate-af2c4821c0a23e873f2a63bca4145080aa2183e3.tar.gz
6437750 panic: db->db_buf==0||arc_referenced(db->db_buf), file: dbuf.c,line:1539
6466866 assertion failed: dlen <= zp->z_blksz (0x188b4 <= 0x13200), zfs_vnops.c, line: 884 6512661 unowned mutex panic during stress test 6524889 Hang adding zvol-based devices to a pool or creating a pool from zvols 6531759 zfs_rmdir() can return EEXIST on an empty directory when spotlight is messing with it 6532056 missing dmu_tx_commit() in zfs_write() eventually hangs zfs
Diffstat (limited to 'usr/src/uts/common/fs/zfs/dsl_pool.c')
-rw-r--r--usr/src/uts/common/fs/zfs/dsl_pool.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/usr/src/uts/common/fs/zfs/dsl_pool.c b/usr/src/uts/common/fs/zfs/dsl_pool.c
index cbda63af43..7046254db8 100644
--- a/usr/src/uts/common/fs/zfs/dsl_pool.c
+++ b/usr/src/uts/common/fs/zfs/dsl_pool.c
@@ -182,6 +182,8 @@ dsl_pool_sync(dsl_pool_t *dp, uint64_t txg)
while (ds = txg_list_remove(&dp->dp_dirty_datasets, txg)) {
if (!list_link_active(&ds->ds_synced_link))
list_insert_tail(&dp->dp_synced_objsets, ds);
+ else
+ dmu_buf_rele(ds->ds_dbuf, ds);
dsl_dataset_sync(ds, zio, tx);
}
err = zio_wait(zio);
@@ -214,6 +216,7 @@ dsl_pool_zil_clean(dsl_pool_t *dp)
list_remove(&dp->dp_synced_objsets, ds);
ASSERT(ds->ds_user_ptr != NULL);
zil_clean(((objset_impl_t *)ds->ds_user_ptr)->os_zil);
+ dmu_buf_rele(ds->ds_dbuf, ds);
}
}