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,10 +455,18 @@
 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,11 +1031,11 @@
          */
         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);
+                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,11 +1708,11 @@
         }
 #endif
 
         refcount_init();
         unique_init();
-        space_map_init();
+        range_tree_init();
         zio_init();
         dmu_init();
         zil_init();
         vdev_cache_stat_init();
         zfs_prop_init();

@@ -1723,11 +1731,11 @@
 
         vdev_cache_stat_fini();
         zil_fini();
         dmu_fini();
         zio_fini();
-        space_map_fini();
+        range_tree_fini();
         unique_fini();
         refcount_fini();
 
         avl_destroy(&spa_namespace_avl);
         avl_destroy(&spa_spare_avl);