Motr
M0
|
![]() |
Modules | |
DIX copy machine Copy packet | |
Data Structures | |
struct | m0_dix_cm_type |
struct | m0_dix_cm_stats |
struct | m0_dix_cm |
Macros | |
#define | M0_DIX_CM_TYPE_DECLARE(cmtype, id, ops, name, typecode) |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
Enumerations | |
enum | dix_cm_iter_phase { DIX_ITER_INIT = M0_FOM_PHASE_INIT, DIX_ITER_FINAL = M0_FOM_PHASE_FINISH, DIX_ITER_STARTED = M0_FOM_PHASE_NR, DIX_ITER_DEL_LOCK, DIX_ITER_CTIDX_START, DIX_ITER_CTIDX_REPOS, DIX_ITER_CTIDX_NEXT, DIX_ITER_NEXT_CCTG, DIX_ITER_META_LOCK, DIX_ITER_CCTG_LOOKUP, DIX_ITER_CCTG_START, DIX_ITER_CCTG_CONT, DIX_ITER_CCTG_CUR_NEXT, DIX_ITER_NEXT_KEY, DIX_ITER_IDLE_START, DIX_ITER_DEL_TX_OPENED, DIX_ITER_DEL_TX_WAIT, DIX_ITER_DEL_TX_DONE, DIX_ITER_IDLE_FIN, DIX_ITER_CCTG_CHECK, DIX_ITER_EOF, DIX_ITER_FAILURE } |
Functions | |
M0_INTERNAL struct m0_dix_cm * | cm2dix (struct m0_cm *cm) |
M0_INTERNAL int | m0_dix_cm_type_register (void) |
M0_INTERNAL void | m0_dix_cm_type_deregister (void) |
M0_INTERNAL int | m0_dix_cm_setup (struct m0_cm *cm) |
M0_INTERNAL int | m0_dix_cm_prepare (struct m0_cm *cm) |
static bool | dix_cm_proxies_completed_cb (struct m0_clink *cl) |
M0_INTERNAL int | m0_dix_cm_start (struct m0_cm *cm) |
static void | dix_cm_tstats_calc (int loc_idx, void *loc_stats, void *total_stats) |
M0_INTERNAL void | m0_dix_cm_stop (struct m0_cm *cm) |
M0_INTERNAL void | m0_dix_cm_fini (struct m0_cm *cm) |
M0_INTERNAL int | m0_dix_get_space_for (struct m0_cm *cm, const struct m0_cm_ag_id *id, size_t *count) |
M0_INTERNAL int | m0_dix_cm_ag_next (struct m0_cm *cm, const struct m0_cm_ag_id *id_curr, struct m0_cm_ag_id *id_next) |
M0_INTERNAL struct m0_reqh * | m0_dix_cm2reqh (const struct m0_dix_cm *dcm) |
static struct m0_cm_proxy * | dix_cm_sdev2proxy (struct m0_dix_cm *dcm, uint32_t sdev_id) |
static int | dix_cm_ag_setup (struct m0_cm *cm, struct m0_cm_cp *cp, struct m0_fid *cctg_fid, uint64_t recs_nr) |
M0_INTERNAL int | m0_dix_cm_data_next (struct m0_cm *cm, struct m0_cm_cp *cp) |
M0_INTERNAL bool | m0_dix_is_peer (struct m0_cm *cm, struct m0_reqh_service_ctx *ctx) |
M0_INTERNAL void | m0_dix_cm_svc_fini (struct m0_reqh_service *service) |
M0_INTERNAL enum dix_repair_state | m0_dix_cm_fid_repair_done (struct m0_fid *gfid, struct m0_reqh *reqh, enum m0_pool_nd_state device_state) |
M0_INTERNAL void | m0_dix_cm_repair_trigger_fop_init (void) |
M0_INTERNAL void | m0_dix_cm_repair_trigger_fop_fini (void) |
M0_INTERNAL void | m0_dix_cm_rebalance_trigger_fop_init (void) |
M0_INTERNAL void | m0_dix_cm_rebalance_trigger_fop_fini (void) |
M0_INTERNAL void | m0_dix_repair_sw_onwire_fop_init (void) |
M0_INTERNAL void | m0_dix_repair_sw_onwire_fop_fini (void) |
M0_INTERNAL void | m0_dix_rebalance_sw_onwire_fop_init (void) |
M0_INTERNAL void | m0_dix_rebalance_sw_onwire_fop_fini (void) |
static int | dix_cm_iter_buf_copy (struct m0_buf *dst, struct m0_buf *src, m0_bcount_t cutoff) |
static uint64_t | dix_cm_iter_fom_locality (const struct m0_fom *fom) |
static bool | dix_cm_iter_meta_clink_cb (struct m0_clink *cl) |
static void | dix_cm_iter_init (struct m0_dix_cm_iter *iter) |
static void | dix_cm_iter_dtx_fini (struct m0_dix_cm_iter *iter) |
static void | dix_cm_iter_tgts_fini (struct m0_dix_cm_iter *iter) |
static void | dix_cm_iter_fini (struct m0_dix_cm_iter *iter) |
static int | dix_cm_iter_failure (struct m0_dix_cm_iter *iter, int rc) |
static int | dix_cm_iter_eof (struct m0_dix_cm_iter *iter) |
static int | dix_cm_iter_idle (struct m0_dix_cm_iter *iter) |
static int | dix_cm_iter_dtx_failure (struct m0_dix_cm_iter *iter) |
static struct m0_poolmach * | dix_cm_pm_get (struct m0_dix_cm *dix_cm, struct m0_dix_layout *layout) |
static int | dix_cm_layout_iter_init (struct m0_dix_layout_iter *iter, const struct m0_fid *index, struct m0_dix_layout *layout, struct m0_dix_cm *dix_cm, struct m0_buf *key) |
static int | dix_cm_tgt_to_unit (uint64_t tgt, uint64_t *group_tgts, uint64_t group_tgts_nr, uint64_t *unit) |
static bool | dix_cm_repair_spare_has_data (struct m0_dix_layout_iter *iter, struct m0_poolmach *pm, uint64_t *group_tgts, uint64_t group_tgts_nr, uint64_t spare_id) |
static int | dix_cm_rebalance_tgts_get (struct m0_dix_layout_iter *iter, struct m0_poolmach *pm, uint64_t *group_tgts, uint64_t group_tgts_nr, uint64_t spare_id, uint64_t **tgts, uint64_t *tgts_nr) |
static int | dix_cm_repair_tgts_get (struct m0_dix_layout_iter *iter, struct m0_poolmach *pm, uint64_t **tgts, uint64_t *tgts_nr) |
static void | parity_group_print (struct m0_dix_layout_iter *iter, struct m0_poolmach *pm, uint64_t local_device, struct m0_buf *key) |
static void | spare_usage_print (struct m0_dix_layout_iter *iter, struct m0_poolmach *pm) |
static void | tgts_print (struct m0_dix_layout_iter *iter, uint64_t *tgts, uint64_t tgts_nr, struct m0_buf *key) |
static bool | dix_cm_is_repair_coordinator (struct m0_dix_layout_iter *iter, struct m0_poolmach *pm, uint64_t local_dev) |
static int | dix_cm_iter_rebalance_tgts_get (struct m0_dix_cm_iter *iter, struct m0_dix_layout_iter *liter, struct m0_poolmach *pm, uint64_t local_device, struct m0_buf *key, bool *is_coordinator, uint64_t **tgts, uint64_t *tgts_nr) |
static int | dix_cm_iter_repair_tgts_get (struct m0_dix_cm_iter *iter, struct m0_dix_layout_iter *liter, struct m0_poolmach *pm, uint64_t local_device, struct m0_buf *key, bool *is_coordinator, uint64_t **tgts, uint64_t *tgts_nr) |
static int | dix_cm_iter_next_key (struct m0_dix_cm_iter *iter, struct m0_buf *key, struct m0_buf *val, bool *is_coordinator) |
static void | dix_cm_iter_meta_unlock (struct m0_dix_cm_iter *iter) |
static int | dix_cm_iter_fom_tick (struct m0_fom *fom) |
static void | dix_cm_iter_fom_fini (struct m0_fom *fom) |
M0_INTERNAL void | m0_dix_cm_iter_type_register (struct m0_dix_cm_type *dcmt) |
M0_INTERNAL int | m0_dix_cm_iter_start (struct m0_dix_cm_iter *iter, struct m0_dix_cm_type *dcmt, struct m0_reqh *reqh, m0_bcount_t rpc_cutoff) |
static void | dix_cm_iter_next_ast_cb (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
M0_INTERNAL void | m0_dix_cm_iter_next (struct m0_dix_cm_iter *iter) |
M0_INTERNAL int | m0_dix_cm_iter_get (struct m0_dix_cm_iter *iter, struct m0_buf *key, struct m0_buf *val, uint32_t *sdev_id) |
static void | dix_cm_iter_stop_ast_cb (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
M0_INTERNAL void | m0_dix_cm_iter_stop (struct m0_dix_cm_iter *iter) |
M0_INTERNAL void | m0_dix_cm_iter_cur_pos (struct m0_dix_cm_iter *iter, struct m0_fid *cctg_fid, uint64_t *cctg_proc_recs_nr) |
M0_INTERNAL void | m0_dix_cm_iter_processed_num (struct m0_dix_cm_iter *iter, uint64_t *proc_recs_nr) |
M0_INTERNAL int | m0_dix_rebalance_sw_onwire_fop_setup (struct m0_cm *cm, struct m0_fop *fop, void(*fop_release)(struct m0_ref *), uint64_t proxy_id, const char *local_ep, const struct m0_cm_sw *sw, const struct m0_cm_sw *out_interval) |
M0_INTERNAL int | m0_dix_cm_ag_alloc (struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming, struct m0_cm_aggr_group **out) |
static int | dix_rebalance_cm_prepare (struct m0_cm *cm) |
static struct m0_cm_cp * | dix_rebalance_cm_cp_alloc (struct m0_cm *cm) |
static void | dix_rebalance_cm_stop (struct m0_cm *cm) |
M0_INTERNAL void | m0_dix_cm_rebalance_cpx_init (void) |
M0_INTERNAL void | m0_dix_cm_rebalance_cpx_fini (void) |
static int | dix_rebalance_svc_allocate (struct m0_reqh_service **service, const struct m0_reqh_service_type *stype) |
M0_DIX_CM_TYPE_DECLARE (dix_rebalance, M0_CM_DIX_REB_OPCODE, &dix_rebalance_svc_type_ops, "M0_CST_DIX_REB", M0_CST_DIX_REB) | |
static int | dix_rebalance_svc_start (struct m0_reqh_service *service) |
static void | dix_rebalance_svc_stop (struct m0_reqh_service *service) |
M0_INTERNAL int | m0_dix_repair_sw_onwire_fop_setup (struct m0_cm *cm, struct m0_fop *fop, void(*fop_release)(struct m0_ref *), uint64_t proxy_id, const char *local_ep, const struct m0_cm_sw *sw, const struct m0_cm_sw *out_interval) |
static int | dix_repair_cm_prepare (struct m0_cm *cm) |
static struct m0_cm_cp * | dix_repair_cm_cp_alloc (struct m0_cm *cm) |
static void | dix_repair_cm_stop (struct m0_cm *cm) |
M0_INTERNAL void | m0_dix_cm_repair_cpx_init (void) |
M0_INTERNAL void | m0_dix_cm_repair_cpx_fini (void) |
static int | dix_repair_svc_allocate (struct m0_reqh_service **service, const struct m0_reqh_service_type *stype) |
M0_DIX_CM_TYPE_DECLARE (dix_repair, M0_CM_DIX_REP_OPCODE, &dix_repair_svc_type_ops, "M0_CST_DIX_REP", M0_CST_DIX_REP) | |
static int | dix_repair_svc_start (struct m0_reqh_service *service) |
static void | dix_repair_svc_stop (struct m0_reqh_service *service) |
static int | dix_trigger_fom_create (struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh) |
static struct m0_fop_type * | dix_fop_type (uint32_t op) |
static uint64_t | dix_progress (struct m0_fom *fom, bool reinit_counter) |
static void | dix_prepare (struct m0_fom *fom) |
DIX copy machine is a replicated state machine, which performs data restructuring and handles device, container, node, &c failures.
DIX copy machine implements a copy machine in-order to re-structure data efficiently in an event of a failure. It uses DIX (distributed index) and component catalogue infrastructure with parity de-clustering layout.
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
Definition at line 30 of file trigger_fom.c.
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
Definition at line 30 of file trigger_fop.c.
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM |
Definition at line 30 of file trigger_fop.c.
enum dix_cm_iter_phase |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Copy machine service type operations.
Allocates and initialises REB copy machine. This allocates struct m0_dix_cm and invokes m0_cm_init() to initialise m0_dix_cm::rc_base.
Definition at line 75 of file service.c.
|
static |
|
static |
|
static |
|
static |
|
static |
Copy machine service type operations.
Allocates and initialises REP copy machine. This allocates struct m0_dix_cm and invokes m0_cm_init() to initialise m0_dix_cm::rc_base.
Definition at line 75 of file service.c.
|
static |
|
static |
M0_INTERNAL int m0_dix_cm_ag_alloc | ( | struct m0_cm * | cm, |
const struct m0_cm_ag_id * | id, | ||
bool | has_incoming, | ||
struct m0_cm_aggr_group ** | out | ||
) |
Allocates and initialises DIX CM aggregation group.
[in] | cm | Base copy machine. |
[in] | id | Aggregation group ID. |
[in] | has_incoming | Shows whether incoming copy packets for this aggregation group expected. |
[out] | out | Allocated an initialised aggregation group. |
0 on success or -ENOMEM.
Definition at line 88 of file ag.c.
M0_INTERNAL int m0_dix_cm_ag_next | ( | struct m0_cm * | cm, |
const struct m0_cm_ag_id * | id_curr, | ||
struct m0_cm_ag_id * | id_next | ||
) |
Gets next key/value using DIX CM iterator and prepares DIX copy packet to be sent. Function returns M0_FSO_WAIT, M0_FSO_AGAIN or negative error code.
cm | Base copy machine context. |
cp | Base copy packet embedded into DIX copy packet. |
Definition at line 535 of file cm.c.
M0_INTERNAL enum dix_repair_state m0_dix_cm_fid_repair_done | ( | struct m0_fid * | gfid, |
struct m0_reqh * | reqh, | ||
enum m0_pool_nd_state | device_state | ||
) |
Returns state of DIX repair process with respect to .
gfid | Input global fid for which DIX repair state has to be retrieved. |
reqh | Parent request handler object. |
1 if DIX repair has not started at all. 2 if DIX repair has started but not completed for . 3 if DIX repair has started and completed for .
M0_INTERNAL void m0_dix_cm_fini | ( | struct m0_cm * | cm | ) |
M0_INTERNAL void m0_dix_cm_iter_cur_pos | ( | struct m0_dix_cm_iter * | iter, |
struct m0_fid * | cctg_fid, | ||
uint64_t * | cctg_proc_recs_nr | ||
) |
Gets fid of component catalogue that is currently under processing and number of processed records of this component catalogue.
[in] | iter | DIX CM iterator. |
[out] | cctg_fid | Current component catalogue fid. |
[out] | cctg_proc_recs_nr | Number of processed records. |
Definition at line 1537 of file iter.c.
M0_INTERNAL int m0_dix_cm_iter_get | ( | struct m0_dix_cm_iter * | iter, |
struct m0_buf * | key, | ||
struct m0_buf * | val, | ||
uint32_t * | sdev_id | ||
) |
Gets current key/value and remote device id for which retrieved key/value are targeted to.
[in] | iter | DIX CM iterator. |
[in] | key | Buffer which data pointer will be set to key. |
[in] | val | Buffer which data pointer will be set to value. |
[out] | sdev_id | Remote device id. |
0 on success. -ENODATA if all local catalogues are processed. Other error code on iterator failure.
Definition at line 1465 of file iter.c.
M0_INTERNAL void m0_dix_cm_iter_next | ( | struct m0_dix_cm_iter * | iter | ) |
Wakes up DIX CM iterator FOM to move the iterator to the next record. Than key/value can be retrieved using () function.
iter | DIX CM iterator. |
Definition at line 1458 of file iter.c.
M0_INTERNAL void m0_dix_cm_iter_processed_num | ( | struct m0_dix_cm_iter * | iter, |
uint64_t * | proc_recs_nr | ||
) |
M0_INTERNAL int m0_dix_cm_iter_start | ( | struct m0_dix_cm_iter * | iter, |
struct m0_dix_cm_type * | dcmt, | ||
struct m0_reqh * | reqh, | ||
m0_bcount_t | rpc_cutoff | ||
) |
Starts DIX CM iterator by queueing of corresponding FOM for execution. Function always returns success for now.
iter | DIX CM iterator. |
dcmt | DIX CM iterator type. |
reqh | Corresponding request handler. |
rpc_cutoff | Threshold in bytes for transmission using bulk. |
0 On success.
Definition at line 1429 of file iter.c.
M0_INTERNAL void m0_dix_cm_iter_stop | ( | struct m0_dix_cm_iter * | iter | ) |
Tells DIX CM iterator to stop and waits for the final state of its FOM. Please note that no external lock should be held before calling this function, because it may wait and block. Otherwise, deadlock may appear on that external lock.
iter | DIX CM iterator. |
Definition at line 1525 of file iter.c.
M0_INTERNAL void m0_dix_cm_iter_type_register | ( | struct m0_dix_cm_type * | dcmt | ) |
M0_INTERNAL int m0_dix_cm_prepare | ( | struct m0_cm * | cm | ) |
M0_INTERNAL void m0_dix_cm_rebalance_cpx_fini | ( | void | ) |
Finalises DIX re-balance FOP and reply FOP types.
Definition at line 84 of file rebalance_cp_onwire.c.
M0_INTERNAL void m0_dix_cm_rebalance_cpx_init | ( | void | ) |
Initialises DIX re-balance FOP and reply FOP types.
Definition at line 63 of file rebalance_cp_onwire.c.
M0_INTERNAL void m0_dix_cm_rebalance_trigger_fop_fini | ( | void | ) |
Finalises DIX re-balance trigger fops.
Finalises start, quiesce, status, abort re-balance trigger FOP and corresponding reply FOP types.
Finalises re-balance trigger fops.
Definition at line 45 of file trigger_fop.c.
M0_INTERNAL void m0_dix_cm_rebalance_trigger_fop_init | ( | void | ) |
Initialises DIX re-balance trigger fops.
Initialises start, quiesce, status, abort re-balance trigger FOP and corresponding reply FOP types.
Initialises re-balance trigger fops.
Definition at line 63 of file trigger_fop.c.
M0_INTERNAL void m0_dix_cm_repair_cpx_fini | ( | void | ) |
Finalises DIX repair FOP and reply FOP types.
Definition at line 83 of file repair_cp_onwire.c.
M0_INTERNAL void m0_dix_cm_repair_cpx_init | ( | void | ) |
Initialises DIX rerepair FOP and reply FOP types.
Definition at line 62 of file repair_cp_onwire.c.
M0_INTERNAL void m0_dix_cm_repair_trigger_fop_fini | ( | void | ) |
Finalises DIX repair trigger fops.
Finalises start, quiesce, status, abort repair trigger FOP and corresponding reply FOP types.
Finalises repair trigger fops.
Definition at line 45 of file trigger_fop.c.
M0_INTERNAL void m0_dix_cm_repair_trigger_fop_init | ( | void | ) |
Initialises DIX repair trigger fops.
Initialises start, quiesce, status, abort repair trigger FOP and corresponding reply FOP types.
Initialises repair trigger fops.
Definition at line 63 of file trigger_fop.c.
M0_INTERNAL int m0_dix_cm_setup | ( | struct m0_cm * | cm | ) |
M0_INTERNAL int m0_dix_cm_start | ( | struct m0_cm * | cm | ) |
M0_INTERNAL void m0_dix_cm_stop | ( | struct m0_cm * | cm | ) |
M0_INTERNAL void m0_dix_cm_svc_fini | ( | struct m0_reqh_service * | service | ) |
M0_DIX_CM_TYPE_DECLARE | ( | dix_repair | , |
M0_CM_DIX_REP_OPCODE | , | ||
& | dix_repair_svc_type_ops, | ||
"M0_CST_DIX_REP" | , | ||
M0_CST_DIX_REP | |||
) |
M0_DIX_CM_TYPE_DECLARE | ( | dix_rebalance | , |
M0_CM_DIX_REB_OPCODE | , | ||
& | dix_rebalance_svc_type_ops, | ||
"M0_CST_DIX_REB" | , | ||
M0_CST_DIX_REB | |||
) |
M0_INTERNAL void m0_dix_cm_type_deregister | ( | void | ) |
M0_INTERNAL int m0_dix_cm_type_register | ( | void | ) |
M0_INTERNAL int m0_dix_get_space_for | ( | struct m0_cm * | cm, |
const struct m0_cm_ag_id * | id, | ||
size_t * | count | ||
) |
M0_INTERNAL bool m0_dix_is_peer | ( | struct m0_cm * | cm, |
struct m0_reqh_service_ctx * | ctx | ||
) |
M0_INTERNAL void m0_dix_rebalance_sw_onwire_fop_fini | ( | void | ) |
M0_INTERNAL void m0_dix_rebalance_sw_onwire_fop_init | ( | void | ) |
M0_INTERNAL int m0_dix_rebalance_sw_onwire_fop_setup | ( | struct m0_cm * | cm, |
struct m0_fop * | fop, | ||
void(*)(struct m0_ref *) | fop_release, | ||
uint64_t | proxy_id, | ||
const char * | local_ep, | ||
const struct m0_cm_sw * | sw, | ||
const struct m0_cm_sw * | out_interval | ||
) |
M0_INTERNAL void m0_dix_repair_sw_onwire_fop_fini | ( | void | ) |
M0_INTERNAL void m0_dix_repair_sw_onwire_fop_init | ( | void | ) |
M0_INTERNAL int m0_dix_repair_sw_onwire_fop_setup | ( | struct m0_cm * | cm, |
struct m0_fop * | fop, | ||
void(*)(struct m0_ref *) | fop_release, | ||
uint64_t | proxy_id, | ||
const char * | local_ep, | ||
const struct m0_cm_sw * | sw, | ||
const struct m0_cm_sw * | out_interval | ||
) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
M0_EXTERN struct m0_cm_type dix_rebalance_cmt |
const struct m0_fom_type_ops dix_rebalance_cp_fom_type_ops |
Definition at line 40 of file rebalance_cp_onwire.c.
M0_EXTERN struct m0_dix_cm_type dix_rebalance_dcmt |
const struct m0_cm_ops dix_rebalance_ops |
const struct m0_cm_ops dix_rebalance_ops |
Copy machine operations.
|
static |
|
static |
M0_EXTERN struct m0_cm_type dix_repair_cmt |
const struct m0_fom_type_ops dix_repair_cp_fom_type_ops |
Definition at line 39 of file repair_cp_onwire.c.
M0_EXTERN struct m0_dix_cm_type dix_repair_dcmt |
const struct m0_cm_ops dix_repair_ops |
Copy machine operations.
|
static |
|
static |
|
static |
Definition at line 49 of file trigger_fom.c.
M0_EXTERN const struct m0_cm_cp_ops m0_dix_cm_rebalance_cp_ops |
M0_EXTERN const struct m0_cm_cp_ops m0_dix_cm_repair_cp_ops |
const struct m0_fom_type_ops m0_dix_trigger_fom_type_ops |
Definition at line 55 of file trigger_fom.c.
const struct m0_fom_type_ops m0_dix_trigger_fom_type_ops |
Definition at line 55 of file trigger_fom.c.
enum dix_cm_iter_phase M0_XCA_DOMAIN |