Changeset View
Changeset View
Standalone View
Standalone View
sys/contrib/openzfs/include/sys/vdev_impl.h
Show First 20 Lines • Show All 263 Lines • ▼ Show 20 Lines | struct vdev { | ||||
vdev_t *vdev_parent; /* parent vdev */ | vdev_t *vdev_parent; /* parent vdev */ | ||||
vdev_t **vdev_child; /* array of children */ | vdev_t **vdev_child; /* array of children */ | ||||
uint64_t vdev_children; /* number of children */ | uint64_t vdev_children; /* number of children */ | ||||
vdev_stat_t vdev_stat; /* virtual device statistics */ | vdev_stat_t vdev_stat; /* virtual device statistics */ | ||||
vdev_stat_ex_t vdev_stat_ex; /* extended statistics */ | vdev_stat_ex_t vdev_stat_ex; /* extended statistics */ | ||||
boolean_t vdev_expanding; /* expand the vdev? */ | boolean_t vdev_expanding; /* expand the vdev? */ | ||||
boolean_t vdev_reopening; /* reopen in progress? */ | boolean_t vdev_reopening; /* reopen in progress? */ | ||||
boolean_t vdev_nonrot; /* true if solid state */ | boolean_t vdev_nonrot; /* true if solid state */ | ||||
int vdev_load_error; /* error on last load */ | |||||
int vdev_open_error; /* error on last open */ | int vdev_open_error; /* error on last open */ | ||||
int vdev_validate_error; /* error on last validate */ | |||||
kthread_t *vdev_open_thread; /* thread opening children */ | kthread_t *vdev_open_thread; /* thread opening children */ | ||||
kthread_t *vdev_validate_thread; /* thread validating children */ | |||||
uint64_t vdev_crtxg; /* txg when top-level was added */ | uint64_t vdev_crtxg; /* txg when top-level was added */ | ||||
/* | /* | ||||
* Top-level vdev state. | * Top-level vdev state. | ||||
*/ | */ | ||||
uint64_t vdev_ms_array; /* metaslab array object */ | uint64_t vdev_ms_array; /* metaslab array object */ | ||||
uint64_t vdev_ms_shift; /* metaslab size shift */ | uint64_t vdev_ms_shift; /* metaslab size shift */ | ||||
uint64_t vdev_ms_count; /* number of metaslabs */ | uint64_t vdev_ms_count; /* number of metaslabs */ | ||||
metaslab_group_t *vdev_mg; /* metaslab group */ | metaslab_group_t *vdev_mg; /* metaslab group */ | ||||
metaslab_group_t *vdev_log_mg; /* embedded slog metaslab group */ | |||||
metaslab_t **vdev_ms; /* metaslab array */ | metaslab_t **vdev_ms; /* metaslab array */ | ||||
uint64_t vdev_pending_fastwrite; /* allocated fastwrites */ | uint64_t vdev_pending_fastwrite; /* allocated fastwrites */ | ||||
txg_list_t vdev_ms_list; /* per-txg dirty metaslab lists */ | txg_list_t vdev_ms_list; /* per-txg dirty metaslab lists */ | ||||
txg_list_t vdev_dtl_list; /* per-txg dirty DTL lists */ | txg_list_t vdev_dtl_list; /* per-txg dirty DTL lists */ | ||||
txg_node_t vdev_txg_node; /* per-txg dirty vdev linkage */ | txg_node_t vdev_txg_node; /* per-txg dirty vdev linkage */ | ||||
boolean_t vdev_remove_wanted; /* async remove wanted? */ | boolean_t vdev_remove_wanted; /* async remove wanted? */ | ||||
boolean_t vdev_probe_wanted; /* async probe wanted? */ | boolean_t vdev_probe_wanted; /* async probe wanted? */ | ||||
list_node_t vdev_config_dirty_node; /* config dirty list */ | list_node_t vdev_config_dirty_node; /* config dirty list */ | ||||
▲ Show 20 Lines • Show All 340 Lines • ▼ Show 20 Lines | |||||
extern void spa_condense_indirect_start_sync(vdev_t *vd, dmu_tx_t *tx); | extern void spa_condense_indirect_start_sync(vdev_t *vd, dmu_tx_t *tx); | ||||
extern int vdev_obsolete_sm_object(vdev_t *vd, uint64_t *sm_obj); | extern int vdev_obsolete_sm_object(vdev_t *vd, uint64_t *sm_obj); | ||||
extern int vdev_obsolete_counts_are_precise(vdev_t *vd, boolean_t *are_precise); | extern int vdev_obsolete_counts_are_precise(vdev_t *vd, boolean_t *are_precise); | ||||
/* | /* | ||||
* Other miscellaneous functions | * Other miscellaneous functions | ||||
*/ | */ | ||||
int vdev_checkpoint_sm_object(vdev_t *vd, uint64_t *sm_obj); | int vdev_checkpoint_sm_object(vdev_t *vd, uint64_t *sm_obj); | ||||
void vdev_metaslab_group_create(vdev_t *vd); | |||||
/* | /* | ||||
* Vdev ashift optimization tunables | * Vdev ashift optimization tunables | ||||
*/ | */ | ||||
extern uint64_t zfs_vdev_min_auto_ashift; | extern uint64_t zfs_vdev_min_auto_ashift; | ||||
extern uint64_t zfs_vdev_max_auto_ashift; | extern uint64_t zfs_vdev_max_auto_ashift; | ||||
int param_set_min_auto_ashift(ZFS_MODULE_PARAM_ARGS); | int param_set_min_auto_ashift(ZFS_MODULE_PARAM_ARGS); | ||||
int param_set_max_auto_ashift(ZFS_MODULE_PARAM_ARGS); | int param_set_max_auto_ashift(ZFS_MODULE_PARAM_ARGS); | ||||
#ifdef __cplusplus | #ifdef __cplusplus | ||||
} | } | ||||
#endif | #endif | ||||
#endif /* _SYS_VDEV_IMPL_H */ | #endif /* _SYS_VDEV_IMPL_H */ |