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,27 ****
--- 18,28 ----
   *
   * 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,41 ****
--- 33,43 ----
  #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,56 ****
  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
  
  typedef struct zfs_blkstat {
          uint64_t        zb_count;
          uint64_t        zb_asize;
          uint64_t        zb_lsize;
--- 48,59 ----
  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_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,92 ****
--- 86,96 ----
          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,118 ****
          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);
  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);
--- 112,123 ----
          krwlock_t dp_config_rwlock;
  
          zfs_all_blkstats_t *dp_blkstats;
  } dsl_pool_t;
  
! 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);