23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_SNSCM 124 tmp_seg_nr -= nbuf_seg_nr;
149 for (
i = 0;
i < nb_idx; ++
i)
207 uint32_t nbuf_seg_nr;
217 if (cp_fop ==
NULL) {
248 tmp_seg_nr -= nbuf_seg_nr;
251 if (
rc != 0 || rbuf ==
NULL)
254 for (
i = 0;
i < nbuf_seg_nr; ++
i) {
318 if (!rpcbulk_tlist_is_empty(&rbulk->
rb_buflist)) {
355 for (
i = 0;
i < ivec_nr; ++
i)
443 uint32_t nbuf_idx = 0;
453 "proxy epoch=%llx (%s)",
454 (
unsigned long long)cp->
c_epoch,
455 (
unsigned long long)cm_proxy->
px_epoch,
481 0, ndom, nbuf, &rbuf);
482 if (
rc != 0 || rbuf ==
NULL)
525 if (
rc != 0 &&
rc != -ENODATA) {
549 const char *remote_rep;
601 #undef M0_TRACE_SUBSYSTEM static m0_bcount_t seg_size
M0_INTERNAL void m0_cm_ag_id_copy(struct m0_cm_ag_id *dst, const struct m0_cm_ag_id *src)
M0_INTERNAL int m0_rpc_post(struct m0_rpc_item *item)
M0_INTERNAL void m0_cm_ag_unlock(struct m0_cm_aggr_group *ag)
M0_INTERNAL void m0_cm_lock(struct m0_cm *cm)
M0_INTERNAL void m0_fom_wakeup(struct m0_fom *fom)
#define M0_ALLOC_ARR(arr, nr)
M0_INTERNAL int m0_sns_cm_cp_send(struct m0_cm_cp *cp, struct m0_fop_type *ft)
M0_INTERNAL int m0_bitmap_init(struct m0_bitmap *map, size_t nr)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
struct m0_net_buffer_pool * nb_pool
enum m0_rpc_item_priority ri_prio
M0_INTERNAL int m0_sns_cm_cp_send_wait(struct m0_cm_cp *cp)
M0_INTERNAL const char * m0_sns_cm_tgt_ep(const struct m0_cm *cm, const struct m0_pool_version *pv, const struct m0_fid *cob_fid, struct m0_conf_obj **hostage)
struct m0_stob_id scx_stob_id
struct m0_bitmap c_xform_cp_indices
M0_INTERNAL int m0_rpc_bulk_store(struct m0_rpc_bulk *rbulk, const struct m0_rpc_conn *conn, struct m0_net_buf_desc_data *to_desc, const struct m0_net_buffer_callbacks *bulk_cb)
struct m0_stob_id sc_stob_id
M0_INTERNAL void m0_cm_proxy_lock(struct m0_cm_proxy *pxy)
struct m0_bufvec nb_buffer
M0_INTERNAL struct m0_sns_cm * cm2sns(struct m0_cm *cm)
static void cp_fop_release(struct m0_ref *ref)
bool m0_rpc_item_is_generic_reply_fop(const struct m0_rpc_item *item)
struct m0_io_indexvec * cis_ivecs
M0_INTERNAL void m0_fop_init(struct m0_fop *fop, struct m0_fop_type *fopt, void *data, void(*fop_release)(struct m0_ref *))
struct m0_pool_version * pv
M0_INTERNAL int m0_rpc_bulk_buf_databuf_add(struct m0_rpc_bulk_buf *rbuf, void *buf, m0_bcount_t count, m0_bindex_t index, struct m0_net_domain *netdom)
#define M0_LOG(level,...)
M0_INTERNAL int m0_sns_cm_cp_recv_wait(struct m0_cm_cp *cp)
M0_INTERNAL void m0_cm_proxy_unlock(struct m0_cm_proxy *pxy)
struct m0_cm_ag_id cag_id
struct m0_net_domain * ntm_dom
struct m0_net_buf_desc_data * id_descs
void * m0_fop_data(const struct m0_fop *fop)
M0_INTERNAL void m0_fom_wait_on(struct m0_fom *fom, struct m0_chan *chan, struct m0_fom_callback *cb)
struct m0_sns_cm_buf_pool sc_ibp
#define container_of(ptr, type, member)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
M0_INTERNAL int m0_sns_cm_buf_attach(struct m0_net_buffer_pool *bp, struct m0_cm_cp *cp)
static struct m0_rpc_item * item
struct m0_rpc_session * px_session
static void cp_reply_received(struct m0_rpc_item *item)
M0_INTERNAL void m0_rpc_bulk_buflist_empty(struct m0_rpc_bulk *rbulk)
M0_TL_DECLARE(rpcbulk, M0_INTERNAL, struct m0_rpc_bulk_buf)
uint64_t cag_cp_global_nr
M0_INTERNAL void m0_cm_unlock(struct m0_cm *cm)
M0_INTERNAL void m0_bitmap_store(const struct m0_bitmap *im_map, struct m0_bitmap_onwire *ow_map)
int32_t m0_rpc_item_generic_reply_rc(const struct m0_rpc_item *reply)
static struct m0_sns_cm_ag * sag
M0_INTERNAL int m0_rpc_bulk_load(struct m0_rpc_bulk *rbulk, const struct m0_rpc_conn *conn, struct m0_net_buf_desc_data *from_desc, const struct m0_net_buffer_callbacks *bulk_cb)
static struct m0_cm_ag_id ag_id
struct m0_rpc_machine * c_rpc_machine
M0_TL_DESCR_DECLARE(rpcbulk, M0_EXTERN)
M0_INTERNAL void m0_cm_proxy_cp_add(struct m0_cm_proxy *pxy, struct m0_cm_cp *cp)
M0_INTERNAL void m0_bitmap_onwire_fini(struct m0_bitmap_onwire *ow_map)
return M0_ERR(-EOPNOTSUPP)
struct m0_io_descs cpx_desc
M0_INTERNAL int m0_sns_cm_cp_recv_init(struct m0_cm_cp *cp)
static int ag_cp_recvd_from_proxy(struct m0_cm_aggr_group *ag, struct m0_sns_cm_cp *scp)
M0_INTERNAL bool m0_cm_ag_is_locked(struct m0_cm_aggr_group *ag)
M0_INTERNAL void m0_cm_ag_lock(struct m0_cm_aggr_group *ag)
struct m0_cm_proxy_in_count sag_proxy_in_count
struct m0_rpc_bulk c_bulk
enum m0_proxy_state px_status
static struct m0_rpc_session session
M0_INTERNAL int m0_cm_ag_id_cmp(const struct m0_cm_ag_id *id0, const struct m0_cm_ag_id *id1)
M0_INTERNAL int m0_bitmap_onwire_init(struct m0_bitmap_onwire *ow_map, size_t nr)
struct m0_net_transfer_mc rm_tm
M0_INTERNAL struct m0_pool_version * m0_sns_cm_pool_version_get(struct m0_sns_cm_file_ctx *fctx)
static const struct m0_rpc_item_ops cp_item_ops
void m0_fom_phase_move(struct m0_fom *fom, int32_t rc, int phase)
const struct m0_cm_cp_ops * c_ops
static struct m0_fid cob_fid
M0_INTERNAL struct m0_cm_aggr_group * m0_cm_aggr_group_locate(struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming)
struct m0_rpc_item * ri_reply
M0_INTERNAL struct m0_cm * cpfom2cm(struct m0_fom *fom)
struct m0_cm_aggr_group * c_ag
static m0_bindex_t offset
M0_INTERNAL int m0_fop_data_alloc(struct m0_fop *fop)
void m0_rpc_reply_post(struct m0_rpc_item *request, struct m0_rpc_item *reply)
M0_INTERNAL void m0_fop_fini(struct m0_fop *fop)
static int snscpx_to_snscp(const struct m0_sns_cpx *sns_cpx, struct m0_sns_cm_cp *sns_cp)
M0_INTERNAL struct m0_sns_cm_cp * cp2snscp(const struct m0_cm_cp *cp)
static int indexvec_prepare(struct m0_io_indexvec *iv, m0_bindex_t idx, uint32_t seg_nr, size_t seg_size)
void(* rio_replied)(struct m0_rpc_item *item)
struct m0_sns_cm_file_ctx * sag_fctx
struct m0_cm_proxy * c_cm_proxy
struct m0_net_buffer_pool sb_bp
struct m0_bitmap_onwire cpx_bm
static struct m0_sns_cm_cp scp
#define M0_ALLOC_PTR(ptr)
const struct m0_rpc_item_ops * ri_ops
static void cp_reply_post(struct m0_cm_cp *cp)
struct m0_rpc_session * ri_session
static struct m0_net_test_service svc
struct m0_rpc_item * m0_fop_to_rpc_item(const struct m0_fop *fop)
struct m0_io_indexvec * cis_ivecs
M0_INTERNAL struct m0_cm_proxy * m0_cm_proxy_locate(struct m0_cm *cm, const char *addr)
M0_INTERNAL enum m0_cm_state m0_cm_state_get(const struct m0_cm *cm)
void m0_fop_put_lock(struct m0_fop *fop)
static struct m0_fop * fop
int(* co_phase_next)(struct m0_cm_cp *cp)
M0_INTERNAL void m0_fom_callback_cancel(struct m0_fom_callback *cb)
struct m0_fop * m0_rpc_item_to_fop(const struct m0_rpc_item *item)
static int snscp_to_snscpx(const struct m0_sns_cm_cp *sns_cp, struct m0_sns_cpx *sns_cpx)
M0_INTERNAL void m0_confc_close(struct m0_conf_obj *obj)
M0_INTERNAL void m0_rpc_bulk_qtype(struct m0_rpc_bulk *rbulk, enum m0_net_queue_type q)
struct m0_fop * fo_rep_fop
struct m0_io_indexvec_seq scx_ivecs
static struct m0_fop_type * ft[]
enum m0_cm_cp_priority c_prio
static uint32_t seg_nr_get(const struct m0_sns_cpx *sns_cpx, uint32_t ivec_nr)
M0_INTERNAL int m0_sns_cm_cp_sw_check(struct m0_cm_cp *cp)
void m0_fom_phase_set(struct m0_fom *fom, int phase)
const struct m0_net_buffer_callbacks m0_rpc__buf_bulk_cb
static int32_t min32(int32_t a, int32_t b)
M0_INTERNAL int m0_rpc_bulk_buf_add(struct m0_rpc_bulk *rbulk, uint32_t segs_nr, m0_bcount_t length, struct m0_net_domain *netdom, struct m0_net_buffer *nb, struct m0_rpc_bulk_buf **out)
M0_INTERNAL void m0_bitmap_load(const struct m0_bitmap_onwire *ow_map, struct m0_bitmap *im_map)
#define m0_tl_for(name, head, obj)
M0_INTERNAL void m0_fid_convert_stob2cob(const struct m0_stob_id *stob_id, struct m0_fid *cob_fid)
struct m0_cpx_reply scr_cp_rep
struct m0_rpc_item f_item
M0_INTERNAL void m0_cm_ag_cp_add_locked(struct m0_cm_aggr_group *ag, struct m0_cm_cp *cp)
struct m0_ioseg * ci_iosegs
M0_INTERNAL struct m0_sns_cm_ag * ag2snsag(const struct m0_cm_aggr_group *ag)
struct m0_fom_callback fo_cb
struct m0_rpc_conn * s_conn
struct m0_cm_ag_id cpx_ag_id
static void cp_buf_acquire(struct m0_cm_cp *cp)