equal
deleted
inserted
replaced
18 * |
18 * |
19 * CDDL HEADER END |
19 * CDDL HEADER END |
20 */ |
20 */ |
21 /* |
21 /* |
22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. |
22 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. |
23 * Copyright (c) 2011 by Delphix. All rights reserved. |
23 * Copyright (c) 2012 by Delphix. All rights reserved. |
24 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. |
24 * Copyright 2011 Nexenta Systems, Inc. All rights reserved. |
25 */ |
25 */ |
26 |
26 |
27 #ifndef _SYS_SPA_IMPL_H |
27 #ifndef _SYS_SPA_IMPL_H |
28 #define _SYS_SPA_IMPL_H |
28 #define _SYS_SPA_IMPL_H |
125 uint8_t spa_sync_on; /* sync threads are running */ |
125 uint8_t spa_sync_on; /* sync threads are running */ |
126 spa_load_state_t spa_load_state; /* current load operation */ |
126 spa_load_state_t spa_load_state; /* current load operation */ |
127 uint64_t spa_import_flags; /* import specific flags */ |
127 uint64_t spa_import_flags; /* import specific flags */ |
128 taskq_t *spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES]; |
128 taskq_t *spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES]; |
129 dsl_pool_t *spa_dsl_pool; |
129 dsl_pool_t *spa_dsl_pool; |
|
130 boolean_t spa_is_initializing; /* true while opening pool */ |
130 metaslab_class_t *spa_normal_class; /* normal data class */ |
131 metaslab_class_t *spa_normal_class; /* normal data class */ |
131 metaslab_class_t *spa_log_class; /* intent log data class */ |
132 metaslab_class_t *spa_log_class; /* intent log data class */ |
132 uint64_t spa_first_txg; /* first txg after spa_open() */ |
133 uint64_t spa_first_txg; /* first txg after spa_open() */ |
133 uint64_t spa_final_txg; /* txg of export/destroy */ |
134 uint64_t spa_final_txg; /* txg of export/destroy */ |
134 uint64_t spa_freeze_txg; /* freeze pool at this txg */ |
135 uint64_t spa_freeze_txg; /* freeze pool at this txg */ |
142 uint64_t spa_load_guid; /* spa_load initialized guid */ |
143 uint64_t spa_load_guid; /* spa_load initialized guid */ |
143 list_t spa_config_dirty_list; /* vdevs with dirty config */ |
144 list_t spa_config_dirty_list; /* vdevs with dirty config */ |
144 list_t spa_state_dirty_list; /* vdevs with dirty state */ |
145 list_t spa_state_dirty_list; /* vdevs with dirty state */ |
145 spa_aux_vdev_t spa_spares; /* hot spares */ |
146 spa_aux_vdev_t spa_spares; /* hot spares */ |
146 spa_aux_vdev_t spa_l2cache; /* L2ARC cache devices */ |
147 spa_aux_vdev_t spa_l2cache; /* L2ARC cache devices */ |
|
148 nvlist_t *spa_label_features; /* Features for reading MOS */ |
147 uint64_t spa_config_object; /* MOS object for pool config */ |
149 uint64_t spa_config_object; /* MOS object for pool config */ |
148 uint64_t spa_config_generation; /* config generation number */ |
150 uint64_t spa_config_generation; /* config generation number */ |
149 uint64_t spa_syncing_txg; /* txg currently syncing */ |
151 uint64_t spa_syncing_txg; /* txg currently syncing */ |
150 bpobj_t spa_deferred_bpobj; /* deferred-free bplist */ |
152 bpobj_t spa_deferred_bpobj; /* deferred-free bplist */ |
151 bplist_t spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */ |
153 bplist_t spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */ |
218 struct proc *spa_proc; /* "zpool-poolname" process */ |
220 struct proc *spa_proc; /* "zpool-poolname" process */ |
219 uint64_t spa_did; /* if procp != p0, did of t1 */ |
221 uint64_t spa_did; /* if procp != p0, did of t1 */ |
220 boolean_t spa_autoreplace; /* autoreplace set in open */ |
222 boolean_t spa_autoreplace; /* autoreplace set in open */ |
221 int spa_vdev_locks; /* locks grabbed */ |
223 int spa_vdev_locks; /* locks grabbed */ |
222 uint64_t spa_creation_version; /* version at pool creation */ |
224 uint64_t spa_creation_version; /* version at pool creation */ |
223 uint64_t spa_prev_software_version; |
225 uint64_t spa_prev_software_version; /* See ub_software_version */ |
|
226 uint64_t spa_feat_for_write_obj; /* required to write to pool */ |
|
227 uint64_t spa_feat_for_read_obj; /* required to read from pool */ |
|
228 uint64_t spa_feat_desc_obj; /* Feature descriptions */ |
224 /* |
229 /* |
225 * spa_refcnt & spa_config_lock must be the last elements |
230 * spa_refcnt & spa_config_lock must be the last elements |
226 * because refcount_t changes size based on compilation options. |
231 * because refcount_t changes size based on compilation options. |
227 * In order for the MDB module to function correctly, the other |
232 * In order for the MDB module to function correctly, the other |
228 * fields must remain in the same location. |
233 * fields must remain in the same location. |