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);