diff options
author | avg <avg@FreeBSD.org> | 2014-02-17 17:11:38 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2014-02-17 17:11:38 +0000 |
commit | 51714698c30564bf94b9e62fd46b2a1d5616c7e5 (patch) | |
tree | a610550b00fbf853249cb8cdfdc2400785ca1069 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c | |
parent | 92000681d74b0aa6a7484fbba39edf34a2ec6a96 (diff) | |
download | FreeBSD-src-51714698c30564bf94b9e62fd46b2a1d5616c7e5.zip FreeBSD-src-51714698c30564bf94b9e62fd46b2a1d5616c7e5.tar.gz |
MFC r258717: MFV r258371,r258372: 4101 metaslab_debug should allow for
fine-grained control
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c index eec4d3a..d9ecb50 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c @@ -497,6 +497,18 @@ spa_deadman(void *arg) { spa_t *spa = arg; + /* + * Disable the deadman timer if the pool is suspended. + */ + if (spa_suspended(spa)) { +#ifdef illumos + VERIFY(cyclic_reprogram(spa->spa_deadman_cycid, CY_INFINITY)); +#else + /* Nothing. just don't schedule any future callouts. */ +#endif + return; + } + zfs_dbgmsg("slow spa_sync: started %llu seconds ago, calls %llu", (gethrtime() - spa->spa_sync_starttime) / NANOSEC, ++spa->spa_deadman_calls); @@ -1068,7 +1080,7 @@ spa_vdev_config_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error, char *tag) txg_wait_synced(spa->spa_dsl_pool, txg); if (vd != NULL) { - ASSERT(!vd->vdev_detached || vd->vdev_dtl_smo.smo_object == 0); + ASSERT(!vd->vdev_detached || vd->vdev_dtl_sm == NULL); spa_config_enter(spa, SCL_ALL, spa, RW_WRITER); vdev_free(vd); spa_config_exit(spa, SCL_ALL, spa); @@ -1750,7 +1762,7 @@ spa_init(int mode) #endif /* illumos */ refcount_sysinit(); unique_init(); - space_map_init(); + range_tree_init(); zio_init(); lz4_init(); dmu_init(); @@ -1780,7 +1792,7 @@ spa_fini(void) dmu_fini(); lz4_fini(); zio_fini(); - space_map_fini(); + range_tree_fini(); unique_fini(); refcount_fini(); |