|
M0_INTERNAL int | m0_sns_cm_repair_cp_xform (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_rebalance_cp_xform (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_repair_cp_send (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_rebalance_cp_send (struct m0_cm_cp *cp) |
|
M0_INTERNAL struct m0_sns_cm_cp * | cp2snscp (const struct m0_cm_cp *cp) |
|
M0_INTERNAL bool | m0_sns_cm_cp_invariant (const struct m0_cm_cp *cp) |
|
M0_INTERNAL struct m0_cm * | cpfom2cm (struct m0_fom *fom) |
|
M0_INTERNAL uint64_t | cp_home_loc_helper (const struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_init (struct m0_cm_cp *cp) |
|
static void | sns_cm_cp_stob_punch_credit (struct m0_sns_cm_cp *sns_cp, struct m0_be_tx_credit *accum) |
|
M0_INTERNAL int | m0_sns_cm_cp_tx_open (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_tx_close (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_fail (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_phase_next (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_next_phase_get (int phase, struct m0_cm_cp *cp) |
|
M0_INTERNAL void | m0_sns_cm_cp_complete (struct m0_cm_cp *cp) |
|
M0_INTERNAL void | m0_sns_cm_cp_buf_release (struct m0_cm_cp *cp) |
|
M0_INTERNAL void | m0_sns_cm_cp_free (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_fini (struct m0_cm_cp *cp) |
|
M0_INTERNAL void | m0_sns_cm_cp_tgt_info_fill (struct m0_sns_cm_cp *scp, const struct m0_fid *cob_fid, uint64_t stob_offset, uint64_t ag_cp_idx) |
|
M0_INTERNAL int | m0_sns_cm_cp_setup (struct m0_sns_cm_cp *scp, const struct m0_fid *cob_fid, uint64_t stob_offset, uint64_t data_seg_nr, uint64_t failed_unit_index, uint64_t ag_cp_idx) |
|
M0_INTERNAL int | m0_sns_cm_cp_dup (struct m0_cm_cp *src, struct m0_cm_cp **dest) |
|
static void | cp_reply_received (struct m0_rpc_item *item) |
|
static int | indexvec_prepare (struct m0_io_indexvec *iv, m0_bindex_t idx, uint32_t seg_nr, size_t seg_size) |
|
static int | snscp_to_snscpx (const struct m0_sns_cm_cp *sns_cp, struct m0_sns_cpx *sns_cpx) |
|
static void | cp_fop_release (struct m0_ref *ref) |
|
M0_INTERNAL int | m0_sns_cm_cp_send (struct m0_cm_cp *cp, struct m0_fop_type *ft) |
|
| M0_TL_DESCR_DECLARE (rpcbulk, M0_EXTERN) |
|
| M0_TL_DECLARE (rpcbulk, M0_INTERNAL, struct m0_rpc_bulk_buf) |
|
M0_INTERNAL int | m0_sns_cm_cp_send_wait (struct m0_cm_cp *cp) |
|
static void | cp_buf_acquire (struct m0_cm_cp *cp) |
|
static void | cp_reply_post (struct m0_cm_cp *cp) |
|
static uint32_t | seg_nr_get (const struct m0_sns_cpx *sns_cpx, uint32_t ivec_nr) |
|
static int | ag_cp_recvd_from_proxy (struct m0_cm_aggr_group *ag, struct m0_sns_cm_cp *scp) |
|
static int | snscpx_to_snscp (const struct m0_sns_cpx *sns_cpx, struct m0_sns_cm_cp *sns_cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_recv_init (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_recv_wait (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_sw_check (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_rebalance_tgt_info (struct m0_sns_cm_ag *sag, struct m0_sns_cm_cp *scp) |
|
M0_INTERNAL int | m0_sns_cm_repair_cp_recv_wait (struct m0_cm_cp *cp) |
|
static void | acc_cp_free (struct m0_cm_cp *cp) |
|
static int | acc_cp_fini (struct m0_cm_cp *cp) |
|
M0_INTERNAL void | m0_sns_cm_acc_cp_init (struct m0_sns_cm_cp *scp, struct m0_sns_cm_ag *sag) |
|
M0_INTERNAL int | m0_sns_cm_acc_cp_setup (struct m0_sns_cm_cp *scp, struct m0_fid *tgt_cobfid, uint64_t tgt_cob_index, uint64_t failed_unit_idx, uint64_t data_seg_nr) |
|
M0_INTERNAL struct m0_sns_cm_repair_ag * | sag2repairag (const struct m0_sns_cm_ag *sag) |
|
M0_INTERNAL int | repair_cp_bufvec_split (struct m0_cm_cp *cp) |
|
static void | bufvec_xor (struct m0_bufvec *dst, struct m0_bufvec *src, m0_bcount_t num_bytes) |
|
static void | cp_xor_recover (struct m0_cm_cp *dst_cp, struct m0_cm_cp *src_cp) |
|
static int | cp_rs_recover (struct m0_cm_cp *src_cp, uint32_t failed_index) |
|
static void | res_cp_bitmap_merge (struct m0_cm_cp *dst, struct m0_cm_cp *src) |
|
static int | res_cp_enqueue (struct m0_cm_cp *cp) |
|
static int | repair_ag_fc_acc_post (struct m0_sns_cm_repair_ag *rag, struct m0_sns_cm_repair_ag_failure_ctx *fc) |
|
static int | ivec_prepare (struct m0_cm_cp *cp, struct m0_indexvec *iv, m0_bindex_t idx, size_t unit_size, size_t max_buf_size, uint32_t bshift) |
|
static int | bufvec_prepare (struct m0_bufvec *obuf, struct m0_tl *cp_buffers_head, uint32_t data_seg_nr, size_t seg_size, uint32_t bshift) |
|
static void | bufvec_free (struct m0_bufvec *bv) |
|
static int | cp_prepare (struct m0_cm_cp *cp, struct m0_indexvec *dst_ivec, struct m0_bufvec *dst_bvec, m0_bindex_t start_idx, uint32_t bshift) |
|
static int | cp_stob_io_init (struct m0_cm_cp *cp, const enum m0_stob_io_opcode op) |
|
M0_INTERNAL struct m0_cob_domain * | m0_sns_cm_cp2cdom (struct m0_cm_cp *cp) |
|
static int | cob_stob_check (struct m0_cm_cp *cp) |
|
static int | cp_stob_release_exts (struct m0_stob *stob, struct m0_indexvec *range, struct m0_dtx *dtx) |
|
static bool | cp_stob_io_is_initialised (struct m0_stob_io *io) |
|
static int | cp_io (struct m0_cm_cp *cp, const enum m0_stob_io_opcode op) |
|
M0_INTERNAL int | m0_sns_cm_cp_read (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_write_pre (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_write (struct m0_cm_cp *cp) |
|
M0_INTERNAL int | m0_sns_cm_cp_io_wait (struct m0_cm_cp *cp) |
|
Implements accumulator copy packet for an aggregation group. Accumulator copy packet is initialised when an aggregation group is created. Data buffers for accumulator copy packets are pre-acquired in context of the sns copy machine iterator. The number of accumulator copy packets in an aggregation group is equivalent to the total number of failed units in an aggregation group. In case of multiple accumulator copy packets, an accumulator copy packet is chosen based on the index of failed unit in an aggregation group to be recovered.