222 kmutex_t spa_vdev_top_lock; /* dueling offline/remove */
223 kmutex_t spa_proc_lock; /* protects spa_proc* */
224 kcondvar_t spa_proc_cv; /* spa_proc_state transitions */
225 spa_proc_state_t spa_proc_state; /* see definition */
226 struct proc *spa_proc; /* "zpool-poolname" process */
227 uint64_t spa_did; /* if procp != p0, did of t1 */
228 boolean_t spa_autoreplace; /* autoreplace set in open */
229 int spa_vdev_locks; /* locks grabbed */
230 uint64_t spa_creation_version; /* version at pool creation */
231 uint64_t spa_prev_software_version; /* See ub_software_version */
232 uint64_t spa_feat_for_write_obj; /* required to write to pool */
233 uint64_t spa_feat_for_read_obj; /* required to read from pool */
234 uint64_t spa_feat_desc_obj; /* Feature descriptions */
235 cyclic_id_t spa_deadman_cycid; /* cyclic id */
236 uint64_t spa_deadman_calls; /* number of deadman calls */
237 uint64_t spa_sync_starttime; /* starting time fo spa_sync */
238 uint64_t spa_deadman_synctime; /* deadman expiration timer */
239 kmutex_t spa_iokstat_lock; /* protects spa_iokstat_* */
240 struct kstat *spa_iokstat; /* kstat of io to this pool */
241 /*
242 * spa_refcnt & spa_config_lock must be the last elements
243 * because refcount_t changes size based on compilation options.
244 * In order for the MDB module to function correctly, the other
245 * fields must remain in the same location.
246 */
247 spa_config_lock_t spa_config_lock[SCL_LOCKS]; /* config changes */
248 refcount_t spa_refcount; /* number of opens */
249 };
250
251 extern const char *spa_config_path;
252
253 extern void spa_taskq_dispatch_ent(spa_t *spa, zio_type_t t, zio_taskq_type_t q,
254 task_func_t *func, void *arg, uint_t flags, taskq_ent_t *ent);
255
256 #ifdef __cplusplus
257 }
258 #endif
259
260 #endif /* _SYS_SPA_IMPL_H */
|
222 kmutex_t spa_vdev_top_lock; /* dueling offline/remove */
223 kmutex_t spa_proc_lock; /* protects spa_proc* */
224 kcondvar_t spa_proc_cv; /* spa_proc_state transitions */
225 spa_proc_state_t spa_proc_state; /* see definition */
226 struct proc *spa_proc; /* "zpool-poolname" process */
227 uint64_t spa_did; /* if procp != p0, did of t1 */
228 boolean_t spa_autoreplace; /* autoreplace set in open */
229 int spa_vdev_locks; /* locks grabbed */
230 uint64_t spa_creation_version; /* version at pool creation */
231 uint64_t spa_prev_software_version; /* See ub_software_version */
232 uint64_t spa_feat_for_write_obj; /* required to write to pool */
233 uint64_t spa_feat_for_read_obj; /* required to read from pool */
234 uint64_t spa_feat_desc_obj; /* Feature descriptions */
235 cyclic_id_t spa_deadman_cycid; /* cyclic id */
236 uint64_t spa_deadman_calls; /* number of deadman calls */
237 uint64_t spa_sync_starttime; /* starting time fo spa_sync */
238 uint64_t spa_deadman_synctime; /* deadman expiration timer */
239 kmutex_t spa_iokstat_lock; /* protects spa_iokstat_* */
240 struct kstat *spa_iokstat; /* kstat of io to this pool */
241 /*
242 * spa_refcount & spa_config_lock must be the last elements
243 * because refcount_t changes size based on compilation options.
244 * In order for the MDB module to function correctly, the other
245 * fields must remain in the same location.
246 */
247 spa_config_lock_t spa_config_lock[SCL_LOCKS]; /* config changes */
248 refcount_t spa_refcount; /* number of opens */
249 };
250
251 extern const char *spa_config_path;
252
253 extern void spa_taskq_dispatch_ent(spa_t *spa, zio_type_t t, zio_taskq_type_t q,
254 task_func_t *func, void *arg, uint_t flags, taskq_ent_t *ent);
255
256 #ifdef __cplusplus
257 }
258 #endif
259
260 #endif /* _SYS_SPA_IMPL_H */
|