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); |