Print this page
4171 clean up spa_feature_*() interfaces
4172 implement extensible_dataset feature for use by other zpool features
Reviewed by: Max Grossman <max.grossman@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>

@@ -30,10 +30,11 @@
 #include <sys/dsl_dataset.h>
 #include <sys/dsl_dir.h>
 #include <sys/dsl_prop.h>
 #include <sys/dsl_synctask.h>
 #include <sys/dsl_deleg.h>
+#include <sys/dmu_impl.h>
 #include <sys/spa.h>
 #include <sys/metaslab.h>
 #include <sys/zap.h>
 #include <sys/zio.h>
 #include <sys/arc.h>

@@ -86,11 +87,11 @@
         dd = dmu_buf_get_user(dbuf);
 #ifdef ZFS_DEBUG
         {
                 dmu_object_info_t doi;
                 dmu_object_info_from_db(dbuf, &doi);
-                ASSERT3U(doi.doi_type, ==, DMU_OT_DSL_DIR);
+                ASSERT3U(doi.doi_bonus_type, ==, DMU_OT_DSL_DIR);
                 ASSERT3U(doi.doi_bonus_size, >=, sizeof (dsl_dir_phys_t));
         }
 #endif
         if (dd == NULL) {
                 dsl_dir_t *winner;

@@ -1349,6 +1350,13 @@
 
         gethrestime(&t);
         mutex_enter(&dd->dd_lock);
         dd->dd_snap_cmtime = t;
         mutex_exit(&dd->dd_lock);
+}
+
+void
+dsl_dir_zapify(dsl_dir_t *dd, dmu_tx_t *tx)
+{
+        objset_t *mos = dd->dd_pool->dp_meta_objset;
+        dmu_object_zapify(mos, dd->dd_object, DMU_OT_DSL_DIR, tx);
 }