33 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CLIENT 96 pdclust =
M0_AMB(pdclust, to, pl_layout);
113 pdclust =
M0_AMB(pdclust, from, pl_layout);
147 pdlayout =
M0_AMB(pdlayout, layout, pl_layout);
173 dix_cap_ldesc = &dix_layout->
u.dl_cap_desc;
194 dix_cap_ldesc = &dix_layout->
u.dl_cap_desc;
305 m0_op_layout_bob_check(ol) &&
308 m0_ast_rc_bob_check(&ol->
ol_ar) &&
309 m0_op_common_bob_check(&ol->
ol_oc));
327 m0_op_common_bob_fini(&ol->
ol_oc);
328 m0_ast_rc_bob_fini(&ol->
ol_ar);
329 m0_op_layout_bob_fini(ol);
401 m0_op_common_bob_init(oc);
407 ol =
M0_AMB(ol, oc, ol_oc);
430 m0_op_layout_bob_init(ol);
431 m0_ast_rc_bob_init(&ol->
ol_ar);
463 M0_POST((*op)->op_sm.sm_rc == 0);
495 rc =
ops->lo_alloc(&layout);
510 #undef M0_TRACE_SUBSYSTEM const struct m0_client_layout_ops layout_composite_ops
struct m0_entity * ol_entity
M0_INTERNAL void m0_sm_fail(struct m0_sm *mach, int fail_state, int32_t rc)
M0_INTERNAL int m0__obj_layout_send(struct m0_obj *obj, struct m0_op_layout *ol)
M0_INTERNAL int m0_op_get(struct m0_op **op, size_t size)
static int pdclust_layout_get(struct m0_client_layout *layout)
static void layout_op_cb_free(struct m0_op_common *oc)
struct m0_sm_group * ol_sm_grp
M0_INTERNAL int m0_layout_op_launch(struct m0_op_layout *ol)
static size_t locality(const struct m0_fom *fom)
static void capture_layout_put(struct m0_client_layout *layout)
M0_INTERNAL int m0_client__layout_get(struct m0_client_layout *layout)
static int capture_layout_alloc(struct m0_client_layout **out)
static int pdclust_layout_copy_from_app(struct m0_client_layout *from, void *to)
static int capture_layout_get(struct m0_client_layout *layout)
static int pdclust_layout_launch(struct m0_op_layout *ol)
M0_INTERNAL int m0_op_init(struct m0_op *op, const struct m0_sm_conf *conf, struct m0_entity *entity)
static int pdclust_layout_alloc(struct m0_client_layout **out)
static const struct m0_client_layout_ops layout_pdclust_ops
static const struct m0_op_layout_ops m0_op_layout_capture_ops
struct m0_uint128 ca_orig_id
static const struct m0_client_layout_ops layout_capture_ops
int(* olo_launch)(struct m0_op_layout *ol)
M0_INTERNAL struct m0_obj * m0__obj_entity(struct m0_entity *entity)
M0_INTERNAL void m0_sm_group_unlock(struct m0_sm_group *grp)
enum m0_client_layout_type ml_type
M0_INTERNAL int m0__dix_layout_get_sync(struct m0_obj *obj, struct m0_dix_layout *dlayout)
M0_INTERNAL void m0_client__layout_put(struct m0_client_layout *layout)
const struct m0_bob_type oc_bobtype
void(* oc_cb_free)(struct m0_op_common *oc)
return M0_ERR(-EOPNOTSUPP)
struct m0_client_layout * m0_client_layout_alloc(enum m0_client_layout_type type)
struct m0_uint128 cl_orig_id
#define M0_AMB(obj, ptr, field)
static void attr(struct m0_addb2__context *ctx, const uint64_t *v, char *buf)
static void layout_op_cb_launch(struct m0_op_common *oc)
void m0_client_layout_free(struct m0_client_layout *layout)
static int capture_layout_copy_from_app(struct m0_client_layout *from, void *to)
static int capture_layout_copy_to_app(struct m0_client_layout *to, void *from)
struct m0_client_layout * ol_layout
#define bob_of(ptr, type, field, bt)
struct m0_op_common ol_oc
void * m0_alloc(size_t size)
M0_BOB_DEFINE(static, &layout_bob, m0_layout)
int(* lo_alloc)(struct m0_client_layout **)
void(* oc_cb_fini)(struct m0_op_common *oc)
void(* lo_put)(struct m0_client_layout *)
union m0_dix_layout::@145 u
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
struct m0_client_layout cl_layout
const struct m0_bob_type ol_bobtype
static void pdclust_layout_put(struct m0_client_layout *layout)
const struct m0_op_layout_ops m0_op_layout_composite_ops
static int capture_layout_io_build(struct m0_io_args *args, struct m0_op **op)
M0_INTERNAL int m0_op_failed(struct m0_op *op)
M0_INTERNAL struct m0_locality * m0__locality_pick(struct m0_client *cinst)
static void layout_op_cb_fini(struct m0_op_common *oc)
static int pdclust_layout_copy_to_app(struct m0_client_layout *to, void *from)
const struct m0_op_layout_ops * ol_ops
int m0_client_layout_op(struct m0_obj *obj, enum m0_entity_opcode opcode, struct m0_client_layout *layout, struct m0_op **op)
M0_INTERNAL void m0_sm_move(struct m0_sm *mach, int32_t rc, int state)
const struct m0_client_layout_ops * ml_ops
M0_INTERNAL void m0_sm_group_lock(struct m0_sm_group *grp)
int m0_client_layout_capture(struct m0_client_layout *layout, struct m0_obj *obj, struct m0_client_layout **out)
M0_INTERNAL int m0__obj_io_build(struct m0_io_args *args, struct m0_op **op)
static int capture_layout_get_sync(struct m0_obj *obj)
int(* lo_get)(struct m0_client_layout *)
void(* oc_cb_launch)(struct m0_op_common *oc)
static int layout_op_init(struct m0_obj *obj, struct m0_client_layout *layout, enum m0_entity_opcode opcode, struct m0_op *op)
static bool layout_op_invariant(struct m0_op_layout *ol)
static const struct m0_op_layout_ops m0_op_layout_pdclust_ops
#define offsetof(typ, memb)
M0_INTERNAL bool m0_sm_group_is_locked(const struct m0_sm_group *grp)
struct m0_sm_conf m0_op_conf
#define M0_IMPOSSIBLE(fmt,...)