usr/src/uts/common/fs/zfs/sys/dsl_pool.h
changeset 12470 54258108784b
parent 12296 7cf402a7f374
child 13700 2889e2596bd6
equal deleted inserted replaced
12469:1664b63fef32 12470:54258108784b
    31 #include <sys/zfs_context.h>
    31 #include <sys/zfs_context.h>
    32 #include <sys/zio.h>
    32 #include <sys/zio.h>
    33 #include <sys/dnode.h>
    33 #include <sys/dnode.h>
    34 #include <sys/ddt.h>
    34 #include <sys/ddt.h>
    35 #include <sys/arc.h>
    35 #include <sys/arc.h>
       
    36 #include <sys/bpobj.h>
    36 
    37 
    37 #ifdef	__cplusplus
    38 #ifdef	__cplusplus
    38 extern "C" {
    39 extern "C" {
    39 #endif
    40 #endif
    40 
    41 
    69 	/* Immutable */
    70 	/* Immutable */
    70 	spa_t *dp_spa;
    71 	spa_t *dp_spa;
    71 	struct objset *dp_meta_objset;
    72 	struct objset *dp_meta_objset;
    72 	struct dsl_dir *dp_root_dir;
    73 	struct dsl_dir *dp_root_dir;
    73 	struct dsl_dir *dp_mos_dir;
    74 	struct dsl_dir *dp_mos_dir;
       
    75 	struct dsl_dir *dp_free_dir;
    74 	struct dsl_dataset *dp_origin_snap;
    76 	struct dsl_dataset *dp_origin_snap;
    75 	uint64_t dp_root_dir_obj;
    77 	uint64_t dp_root_dir_obj;
    76 	struct taskq *dp_vnrele_taskq;
    78 	struct taskq *dp_vnrele_taskq;
    77 
    79 
    78 	/* No lock needed - sync context only */
    80 	/* No lock needed - sync context only */
    80 	list_t dp_synced_datasets;
    82 	list_t dp_synced_datasets;
    81 	hrtime_t dp_read_overhead;
    83 	hrtime_t dp_read_overhead;
    82 	uint64_t dp_throughput; /* bytes per millisec */
    84 	uint64_t dp_throughput; /* bytes per millisec */
    83 	uint64_t dp_write_limit;
    85 	uint64_t dp_write_limit;
    84 	uint64_t dp_tmp_userrefs_obj;
    86 	uint64_t dp_tmp_userrefs_obj;
       
    87 	bpobj_t dp_free_bpobj;
    85 
    88 
    86 	struct dsl_scan *dp_scan;
    89 	struct dsl_scan *dp_scan;
    87 
    90 
    88 	/* Uses dp_lock */
    91 	/* Uses dp_lock */
    89 	kmutex_t dp_lock;
    92 	kmutex_t dp_lock;
   128 int dsl_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bpp,
   131 int dsl_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bpp,
   129     arc_done_func_t *done, void *private, int priority, int zio_flags,
   132     arc_done_func_t *done, void *private, int priority, int zio_flags,
   130     uint32_t *arc_flags, const zbookmark_t *zb);
   133     uint32_t *arc_flags, const zbookmark_t *zb);
   131 void dsl_pool_create_origin(dsl_pool_t *dp, dmu_tx_t *tx);
   134 void dsl_pool_create_origin(dsl_pool_t *dp, dmu_tx_t *tx);
   132 void dsl_pool_upgrade_clones(dsl_pool_t *dp, dmu_tx_t *tx);
   135 void dsl_pool_upgrade_clones(dsl_pool_t *dp, dmu_tx_t *tx);
       
   136 void dsl_pool_upgrade_dir_clones(dsl_pool_t *dp, dmu_tx_t *tx);
   133 
   137 
   134 taskq_t *dsl_pool_vnrele_taskq(dsl_pool_t *dp);
   138 taskq_t *dsl_pool_vnrele_taskq(dsl_pool_t *dp);
   135 
   139 
   136 extern int dsl_pool_user_hold(dsl_pool_t *dp, uint64_t dsobj,
   140 extern int dsl_pool_user_hold(dsl_pool_t *dp, uint64_t dsobj,
   137     const char *tag, uint64_t *now, dmu_tx_t *tx);
   141     const char *tag, uint64_t *now, dmu_tx_t *tx);