30 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_LAYOUT 92 pplops_tlink_init_at(plop, &plan->
lp_plops);
97 pldeps_tlist_init(&plop->
pl_deps);
114 pldeps_tlink_init_at_tail(plrel, &rdep->
pl_deps);
115 plrdeps_tlink_init_at_tail(plrel, &dep->
pl_rdeps);
125 plrdeps_tlink_del_fini(rel);
129 pldeps_tlink_del_fini(rel);
132 pldeps_tlist_fini(&plop->
pl_deps);
133 plrdeps_tlist_fini(&plop->
pl_rdeps);
163 "was object opened?");
189 if (plop_done ==
NULL) {
202 if (plop ==
NULL || plop_out ==
NULL) {
288 *plop = pplops_tlist_head(&plan->
lp_plops);
317 #undef M0_TRACE_SUBSYSTEM
static void del_plop_relations(struct m0_layout_plop *plop)
const struct m0_bob_type oo_bobtype
M0_INTERNAL void m0_layout_plop_done(struct m0_layout_plop *plop)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
#define m0_htable_for(name, var, htable)
const struct m0_layout_plop_ops * pl_ops
M0_INTERNAL int m0_layout_plan_get(struct m0_layout_plan *plan, uint64_t colour, struct m0_layout_plop **plop)
#define M0_LOG(level,...)
const struct m0_op_io_ops * ioo_ops
struct m0_indexvec_varr ti_bufvec
struct m0_layout_instance * lp_layout
#define container_of(ptr, type, member)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
M0_TL_DESCR_DEFINE(pplops, "plan plops", M0_INTERNAL, struct m0_layout_plop, pl_linkage, pl_magix, M0_LAYOUT_PLAN_PLOP_MAGIC, M0_LAYOUT_PPLOPS_HMAGIC)
enum m0_layout_plop_state pl_state
const struct m0_bob_type ioo_bobtype
struct nw_xfer_request ioo_nwxfer
int(* nxo_distribute)(struct nw_xfer_request *xfer)
const struct m0_bob_type oc_bobtype
return M0_ERR(-EOPNOTSUPP)
struct m0_bufvec iop_data
#define m0_tl_teardown(name, head, obj)
M0_INTERNAL bool m0_mutex_is_locked(const struct m0_mutex *mutex)
const struct nw_xfer_ops * nxr_ops
M0_TL_DEFINE(pplops, M0_INTERNAL, struct m0_layout_plop)
enum m0_layout_plop_type pl_type
#define bob_of(ptr, type, field, bt)
M0_INTERNAL int m0_layout_plop_start(struct m0_layout_plop *plop)
struct target_ioreq * pl_ti
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
void(* iro_iomaps_destroy)(struct m0_op_io *ioo)
struct m0_htable nxr_tioreqs_hash
struct m0_layout_plop * plr_rdep
static void target_ioreq_fini(struct target_ioreq *ti)
static struct m0_layout_plop * plop_alloc_init(struct m0_layout_plan *plan, enum m0_layout_plop_type type, struct target_ioreq *ti)
struct m0_rpc_session * ti_session
struct m0_layout_plan * pl_plan
struct m0_layout_plop iop_base
struct m0_rpc_session * iop_session
struct m0_indexvec iop_ext
M0_INTERNAL void m0_layout_plan_fini(struct m0_layout_plan *plan)
#define M0_ALLOC_PTR(ptr)
static int add_plops_relation(struct m0_layout_plop *rdep, struct m0_layout_plop *dep)
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
int(* iro_iomaps_prepare)(struct m0_op_io *ioo)
M0_INTERNAL struct m0_layout_plan * m0_layout_plan_build(struct m0_op *op)
void(* po_fini)(struct m0_layout_plop *plop)
#define M0_ASSERT_INFO(cond, fmt,...)
struct m0_layout_plop * lp_last_plop
struct m0_layout_instance * oo_layout_instance
struct m0_layout_plop * plr_dep
struct m0_indexvec ti_ivec
struct pargrp_iomap ** ioo_iomaps
#define m0_tl_forall(name, var, head,...)