diff options
author | delphij <delphij@FreeBSD.org> | 2015-10-10 00:17:51 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2015-10-10 00:17:51 +0000 |
commit | 570b502e0841050e2e6ede74adb8bf33dac895d6 (patch) | |
tree | c3520cf292e2dc0af2999c0688d59e721cc511bc /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c | |
parent | d98dd6b5d1ff3465db1cabe55caea12dfb4d84fb (diff) | |
download | FreeBSD-src-570b502e0841050e2e6ede74adb8bf33dac895d6.zip FreeBSD-src-570b502e0841050e2e6ede74adb8bf33dac895d6.tar.gz |
MFC r288204: MFV r288063:
make dataset property de-registration operation O(1)
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c index f4fdaf9..4fbbe7c 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c @@ -288,6 +288,7 @@ dsl_dataset_evict(void *dbu) ASSERT(!list_link_active(&ds->ds_synced_link)); + list_destroy(&ds->ds_prop_cbs); if (mutex_owned(&ds->ds_lock)) mutex_exit(&ds->ds_lock); mutex_destroy(&ds->ds_lock); @@ -434,6 +435,9 @@ dsl_dataset_hold_obj(dsl_pool_t *dp, uint64_t dsobj, void *tag, list_create(&ds->ds_sendstreams, sizeof (dmu_sendarg_t), offsetof(dmu_sendarg_t, dsa_link)); + list_create(&ds->ds_prop_cbs, sizeof (dsl_prop_cb_record_t), + offsetof(dsl_prop_cb_record_t, cbr_ds_node)); + if (doi.doi_type == DMU_OTN_ZAP_METADATA) { for (spa_feature_t f = 0; f < SPA_FEATURES; f++) { if (!(spa_feature_table[f].fi_flags & |