23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DIXCM 162 M0_ENTRY(
"cm: %p, cp: %p, ft:'%s', rc: %d",
305 const struct m0_fid *cctg_fid)
311 const struct m0_fid *cctg_fid,
312 uint64_t failed_unit_index)
390 return M0_RC(result);
401 &
fom->fo_loc->fl_group);
449 return M0_RC(result);
544 .co_phase_next =
NULL,
570 .co_phase_next =
NULL,
579 #undef M0_TRACE_SUBSYSTEM M0_INTERNAL void m0_long_lock_link_init(struct m0_long_lock_link *link, struct m0_fom *fom, struct m0_long_lock_addb2 *addb2)
M0_INTERNAL uint64_t m0_dix_cm_cp_home_loc_helper(const struct m0_cm_cp *cp)
M0_INTERNAL struct m0_dix_cm * cm2dix(struct m0_cm *cm)
M0_INTERNAL void m0_cm_lock(struct m0_cm *cm)
M0_INTERNAL void m0_fom_wakeup(struct m0_fom *fom)
M0_INTERNAL int m0_bitmap_init(struct m0_bitmap *map, size_t nr)
M0_INTERNAL void m0_cm_ag_cp_del(struct m0_cm_aggr_group *ag, struct m0_cm_cp *cp)
M0_INTERNAL int m0_dix_cm_cp_io_wait(struct m0_cm_cp *cp, struct m0_fop_type *ft)
#define M0_FOM_LONG_LOCK_RETURN(rc)
struct m0_bitmap c_xform_cp_indices
struct m0_rpc_at_buf dcx_ab_key
void * m0_locality_data(int key)
M0_INTERNAL struct m0_long_lock * m0_ctg_lock(struct m0_cas_ctg *ctg)
#define M0_LOG(level,...)
M0_INTERNAL bool m0_rpc_at_is_set(const struct m0_rpc_at_buf *ab)
struct m0_long_lock_link dc_meta_lock
M0_INTERNAL int m0_dix_cm_cp_init(struct m0_cm_cp *cp)
M0_INTERNAL void m0_dtx_init(struct m0_dtx *tx, struct m0_be_domain *be_domain, struct m0_sm_group *sm_group)
M0_INTERNAL void m0_dtx_opened(struct m0_dtx *tx)
M0_INTERNAL const struct m0_cm_cp_ops m0_dix_cm_rebalance_cp_ops
M0_INTERNAL int m0_dix_cm_cp_send_wait(struct m0_cm_cp *cp)
void * m0_fop_data(const struct m0_fop *fop)
static struct m0_dix_cm * cp2dixcm(struct m0_cm_cp *cp)
M0_INTERNAL int m0_dix_cm_cp_dup(struct m0_cm_cp *src, struct m0_cm_cp **dest)
M0_INTERNAL int m0_dix_cm_repair_cp_send(struct m0_cm_cp *cp)
M0_INTERNAL void m0_fom_wait_on(struct m0_fom *fom, struct m0_chan *chan, struct m0_fom_callback *cb)
M0_INTERNAL const struct m0_cm_cp_ops m0_dix_cm_repair_cp_ops
M0_INTERNAL void m0_long_write_unlock(struct m0_long_lock *lock, struct m0_long_lock_link *link)
#define container_of(ptr, type, member)
M0_INTERNAL int m0_dix_cm_cp_read(struct m0_cm_cp *cp)
M0_INTERNAL void m0_ctg_insert_credit(struct m0_cas_ctg *ctg, m0_bcount_t knob, m0_bcount_t vnob, struct m0_be_tx_credit *accum)
static struct m0_be_tx * m0_fom_tx(struct m0_fom *fom)
static void dixcpx_to_dixcp(const struct m0_dix_cpx *dix_cpx, struct m0_dix_cm_cp *dix_cp)
M0_INTERNAL int m0_dix_cm_cp_fini(struct m0_cm_cp *cp)
M0_INTERNAL int m0_cm_cp_dup(struct m0_cm_cp *src, struct m0_cm_cp **dest)
struct m0_cas_ctg * dc_ctg
M0_INTERNAL void m0_cm_unlock(struct m0_cm *cm)
M0_INTERNAL int m0_ctg_insert(struct m0_ctg_op *ctg_op, struct m0_cas_ctg *ctg, const struct m0_buf *key, const struct m0_buf *val, int next_phase)
M0_INTERNAL void m0_cm_ag_cp_add(struct m0_cm_aggr_group *ag, struct m0_cm_cp *cp)
M0_INTERNAL int m0_ctg_meta_lookup(struct m0_ctg_op *ctg_op, const struct m0_fid *fid, int next_phase)
static void dix_cm_cp_dtx_fini(struct m0_cm_cp *cp)
M0_INTERNAL void m0_dix_cm_cp_free(struct m0_cm_cp *cp)
M0_INTERNAL bool m0_long_write_lock(struct m0_long_lock *lk, struct m0_long_lock_link *link, int next_phase)
uint32_t dcx_ctg_op_flags
struct m0_long_lock_link dc_ctg_lock
enum m0_cm_cp_io_op c_io_op
static int dix_cm_repair_cp_fail(struct m0_cm_cp *cp)
return M0_ERR(-EOPNOTSUPP)
M0_INTERNAL int m0_dix_cm_cp_recv_init(struct m0_cm_cp *cp)
#define M0_AMB(obj, ptr, field)
M0_INTERNAL void m0_dtx_open(struct m0_dtx *tx)
M0_INTERNAL struct m0_cas_ctg * m0_ctg_meta(void)
M0_INTERNAL void m0_long_unlock(struct m0_long_lock *lock, struct m0_long_lock_link *link)
M0_INTERNAL int m0_dix_cm_cp_tx_open(struct m0_cm_cp *cp)
M0_INTERNAL bool m0_dix_cm_cp_invariant(const struct m0_cm_cp *cp)
void m0_fom_phase_move(struct m0_fom *fom, int32_t rc, int phase)
M0_INTERNAL void m0_long_lock_link_fini(struct m0_long_lock_link *link)
struct m0_rpc_at_buf dcx_ab_val
const struct m0_cm_cp_ops * c_ops
M0_INTERNAL int m0_dix_cm_cp_tx_done(struct m0_cm_cp *cp)
M0_INTERNAL int m0_rpc_at_get(const struct m0_rpc_at_buf *ab, struct m0_buf *buf)
M0_INTERNAL int m0_dix_cm_cp_xform(struct m0_cm_cp *cp)
int(* co_action[])(struct m0_cm_cp *cp)
M0_INTERNAL struct m0_cm * cpfom2cm(struct m0_fom *fom)
M0_INTERNAL int m0_dix_cm_cp_write(struct m0_cm_cp *cp)
M0_INTERNAL void m0_dtx_fini(struct m0_dtx *tx)
struct m0_fop_type m0_dix_repair_cpx_reply_fopt
M0_EXTERN struct m0_dix_cm_type dix_repair_dcmt
struct m0_long_lock_addb2 dc_ctg_lock_addb2
struct m0_cm_aggr_group * c_ag
M0_INTERNAL uint32_t m0_dix_fid_cctg_device_id(const struct m0_fid *cctg_fid)
void m0_rpc_reply_post(struct m0_rpc_item *request, struct m0_rpc_item *reply)
struct m0_long_lock_addb2 dc_meta_lock_addb2
M0_INTERNAL void m0_dtx_done(struct m0_dtx *tx)
M0_INTERNAL struct m0_cm_cp * m0_dix_cm_cp_alloc(struct m0_cm *cm)
struct m0_ctg_op dc_ctg_op
M0_INTERNAL void m0_ctg_op_init(struct m0_ctg_op *ctg_op, struct m0_fom *fom, uint32_t flags)
M0_INTERNAL int m0_dix_cm_cp_recv_wait(struct m0_cm_cp *cp)
static int dix_cm_fom_tx_wait(struct m0_fom *fom)
struct m0_fop_type m0_dix_rebalance_cpx_reply_fopt
struct m0_reqh_service * fo_service
void(* co_complete)(struct m0_cm_cp *cp)
#define M0_ALLOC_PTR(ptr)
struct m0_dix_cm_type * dcm_type
static int dix_cm_rebalance_cp_fail(struct m0_cm_cp *cp)
struct m0_reqh_service cm_service
static int dix_cm_cp_dtx_failure(struct m0_cm_cp *cp)
M0_INTERNAL int m0_fom_rc(const struct m0_fom *fom)
static void dix_cm_cp_reply_send(struct m0_cm_cp *cp, struct m0_fop_type *ft, int rc)
static struct m0_fop * fop
M0_INTERNAL void m0_dix_cm_cp_complete(struct m0_cm_cp *cp)
static int dix_cm_rebalance_cp_io_wait(struct m0_cm_cp *cp)
M0_INTERNAL void m0_dix_cm_cp_tgt_info_fill(struct m0_dix_cm_cp *dix_cp, const struct m0_fid *cctg_fid)
struct m0_cm_cp_pump cm_cp_pump
M0_INTERNAL void m0_dix_cm_cp_setup(struct m0_dix_cm_cp *dix_cp, const struct m0_fid *cctg_fid, uint64_t failed_unit_index)
struct m0_fop * fo_rep_fop
M0_INTERNAL int m0_dix_cm_cp_sw_check(struct m0_cm_cp *cp)
M0_INTERNAL void m0_ctg_op_fini(struct m0_ctg_op *ctg_op)
static struct m0_fop_type * ft[]
M0_INTERNAL int m0_cm_aggr_group_alloc(struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming, struct m0_cm_aggr_group **out)
M0_INTERNAL void m0_long_read_unlock(struct m0_long_lock *lock, struct m0_long_lock_link *link)
enum m0_cm_cp_priority c_prio
struct m0_fid dcx_ctg_fid
void m0_fom_phase_set(struct m0_fom *fom, int phase)
M0_INTERNAL int m0_dix_cm_cp_fail(struct m0_cm_cp *cp, struct m0_fop_type *ft)
M0_INTERNAL bool m0_fid_is_valid(const struct m0_fid *fid)
M0_INTERNAL struct m0_dix_cm_cp * cp2dixcp(const struct m0_cm_cp *cp)
struct m0_rpc_item f_item
M0_INTERNAL bool m0_cm_cp_invariant(const struct m0_cm_cp *cp)
static int dix_cm_repair_cp_io_wait(struct m0_cm_cp *cp)
struct m0_pdclust_src_addr src
M0_INTERNAL int m0_dix_cm_cp_write_pre(struct m0_cm_cp *cp)
M0_INTERNAL int m0_dix_cm_rebalance_cp_send(struct m0_cm_cp *cp)
M0_INTERNAL int m0_ctg_op_rc(struct m0_ctg_op *ctg_op)
M0_INTERNAL struct m0_reqh * m0_fom_reqh(const struct m0_fom *fom)
static int dix_cm_cp_incoming_kv(struct m0_rpc_at_buf *ab_key, struct m0_rpc_at_buf *ab_val, struct m0_buf *key, struct m0_buf *val)
struct m0_cm_ag_id cpx_ag_id
M0_INTERNAL struct m0_cas_ctg * m0_ctg_meta_lookup_result(struct m0_ctg_op *ctg_op)