diff options
| author | Arne Jansen <jansen@webgods.de> | 2015-05-06 09:07:55 -0700 |
|---|---|---|
| committer | Matthew Ahrens <mahrens@delphix.com> | 2015-05-09 10:02:31 -0700 |
| commit | 12380e1e701fda28c9e9f32d01cafb54af279eb5 (patch) | |
| tree | c3f78a5d76e6f646c0176ec7752dfb076ed1125e /usr/src/uts/common/fs/zfs/dsl_pool.c | |
| parent | 00208914d51cd2f8ec864d0b732aa94a0e13a2ed (diff) | |
| download | illumos-joyent-12380e1e701fda28c9e9f32d01cafb54af279eb5.tar.gz | |
5269 zpool import slow
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src/uts/common/fs/zfs/dsl_pool.c')
| -rw-r--r-- | usr/src/uts/common/fs/zfs/dsl_pool.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/zfs/dsl_pool.c b/usr/src/uts/common/fs/zfs/dsl_pool.c index 2e7f798485..8c5d820ede 100644 --- a/usr/src/uts/common/fs/zfs/dsl_pool.c +++ b/usr/src/uts/common/fs/zfs/dsl_pool.c @@ -758,7 +758,7 @@ dsl_pool_upgrade_clones(dsl_pool_t *dp, dmu_tx_t *tx) ASSERT(dp->dp_origin_snap != NULL); VERIFY0(dmu_objset_find_dp(dp, dp->dp_root_dir_obj, upgrade_clones_cb, - tx, DS_FIND_CHILDREN)); + tx, DS_FIND_CHILDREN | DS_FIND_SERIALIZE)); } /* ARGSUSED */ @@ -812,7 +812,7 @@ dsl_pool_upgrade_dir_clones(dsl_pool_t *dp, dmu_tx_t *tx) VERIFY0(bpobj_open(&dp->dp_free_bpobj, dp->dp_meta_objset, obj)); VERIFY0(dmu_objset_find_dp(dp, dp->dp_root_dir_obj, - upgrade_dir_clones_cb, tx, DS_FIND_CHILDREN)); + upgrade_dir_clones_cb, tx, DS_FIND_CHILDREN | DS_FIND_SERIALIZE)); } void @@ -1056,3 +1056,9 @@ dsl_pool_config_held(dsl_pool_t *dp) { return (RRW_LOCK_HELD(&dp->dp_config_rwlock)); } + +boolean_t +dsl_pool_config_held_writer(dsl_pool_t *dp) +{ + return (RRW_WRITE_HELD(&dp->dp_config_rwlock)); +} |
