Print this page
2619 asynchronous destruction of ZFS file systems
2747 SPA versioning with zfs feature flags
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <gwilson@delphix.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>
Approved by: Dan McDonald <danmcd@nexenta.com>
        
@@ -18,10 +18,11 @@
  *
  * CDDL HEADER END
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
  */
 
 #ifndef _SYS_DSL_POOL_H
 #define _SYS_DSL_POOL_H
 
@@ -32,10 +33,11 @@
 #include <sys/zio.h>
 #include <sys/dnode.h>
 #include <sys/ddt.h>
 #include <sys/arc.h>
 #include <sys/bpobj.h>
+#include <sys/bptree.h>
 
 #ifdef  __cplusplus
 extern "C" {
 #endif
 
@@ -46,11 +48,12 @@
 struct dmu_tx;
 struct dsl_scan;
 
 /* These macros are for indexing into the zfs_all_blkstats_t. */
 #define DMU_OT_DEFERRED DMU_OT_NONE
-#define DMU_OT_TOTAL    DMU_OT_NUMTYPES
+#define DMU_OT_OTHER    DMU_OT_NUMTYPES /* place holder for DMU_OT() types */
+#define DMU_OT_TOTAL    (DMU_OT_NUMTYPES + 1)
 
 typedef struct zfs_blkstat {
         uint64_t        zb_count;
         uint64_t        zb_asize;
         uint64_t        zb_lsize;
@@ -83,10 +86,11 @@
         hrtime_t dp_read_overhead;
         uint64_t dp_throughput; /* bytes per millisec */
         uint64_t dp_write_limit;
         uint64_t dp_tmp_userrefs_obj;
         bpobj_t dp_free_bpobj;
+        uint64_t dp_bptree_obj;
 
         struct dsl_scan *dp_scan;
 
         /* Uses dp_lock */
         kmutex_t dp_lock;
@@ -108,11 +112,12 @@
         krwlock_t dp_config_rwlock;
 
         zfs_all_blkstats_t *dp_blkstats;
 } dsl_pool_t;
 
-int dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp);
+int dsl_pool_init(spa_t *spa, uint64_t txg, dsl_pool_t **dpp);
+int dsl_pool_open(dsl_pool_t *dp);
 void dsl_pool_close(dsl_pool_t *dp);
 dsl_pool_t *dsl_pool_create(spa_t *spa, nvlist_t *zplprops, uint64_t txg);
 void dsl_pool_sync(dsl_pool_t *dp, uint64_t txg);
 void dsl_pool_sync_done(dsl_pool_t *dp, uint64_t txg);
 int dsl_pool_sync_context(dsl_pool_t *dp);