Print this page
4101 metaslab_debug should allow for fine-grained control
4102 space_maps should store more information about themselves
4103 space map object blocksize should be increased
4104 ::spa_space no longer works
4105 removing a mirrored log device results in a leaked object
4106 asynchronously load metaslab
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Sebastien Roy <seb@delphix.com>
*** 455,464 ****
--- 455,472 ----
void
spa_deadman(void *arg)
{
spa_t *spa = arg;
+ /*
+ * Disable the deadman timer if the pool is suspended.
+ */
+ if (spa_suspended(spa)) {
+ VERIFY(cyclic_reprogram(spa->spa_deadman_cycid, CY_INFINITY));
+ return;
+ }
+
zfs_dbgmsg("slow spa_sync: started %llu seconds ago, calls %llu",
(gethrtime() - spa->spa_sync_starttime) / NANOSEC,
++spa->spa_deadman_calls);
if (zfs_deadman_enabled)
vdev_deadman(spa->spa_root_vdev);
*** 1023,1033 ****
*/
if (error == 0)
txg_wait_synced(spa->spa_dsl_pool, txg);
if (vd != NULL) {
! ASSERT(!vd->vdev_detached || vd->vdev_dtl_smo.smo_object == 0);
spa_config_enter(spa, SCL_ALL, spa, RW_WRITER);
vdev_free(vd);
spa_config_exit(spa, SCL_ALL, spa);
}
--- 1031,1041 ----
*/
if (error == 0)
txg_wait_synced(spa->spa_dsl_pool, txg);
if (vd != NULL) {
! 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);
}
*** 1700,1710 ****
}
#endif
refcount_init();
unique_init();
! space_map_init();
zio_init();
dmu_init();
zil_init();
vdev_cache_stat_init();
zfs_prop_init();
--- 1708,1718 ----
}
#endif
refcount_init();
unique_init();
! range_tree_init();
zio_init();
dmu_init();
zil_init();
vdev_cache_stat_init();
zfs_prop_init();
*** 1723,1733 ****
vdev_cache_stat_fini();
zil_fini();
dmu_fini();
zio_fini();
! space_map_fini();
unique_fini();
refcount_fini();
avl_destroy(&spa_namespace_avl);
avl_destroy(&spa_spare_avl);
--- 1731,1741 ----
vdev_cache_stat_fini();
zil_fini();
dmu_fini();
zio_fini();
! range_tree_fini();
unique_fini();
refcount_fini();
avl_destroy(&spa_namespace_avl);
avl_destroy(&spa_spare_avl);