30 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_DTM 55 upd->upd_label !=
data->da_label)));
179 oper_tlist_init(
list);
187 oper_tlist_del(leftover);
189 oper_tlist_fini(
list);
225 oper_tlink_init_at(update++,
list);
287 upd_up.up_hi_linkage, upd_up.up_magix,
293 upd_up.up_op_linkage, upd_up.up_magix,
300 static const char state_name[] =
"LFpIVPS??????????????????";
301 static const char rule_name[] =
"ISNA?????????????????????";
309 "rule: %c ver: %lu orig: %lu",
322 #undef M0_TRACE_SUBSYSTEM
M0_INTERNAL void history_print_header(const struct m0_dtm_history *history, char *buf)
M0_INTERNAL int m0_dtm_update_build(struct m0_dtm_update *update, struct m0_dtm_oper *oper, const struct m0_dtm_update_descr *updd)
struct m0_dtm_history_id udd_id
M0_INTERNAL void update_print_internal(const struct m0_dtm_update *update, bool history)
struct m0_dtm_update_comm upd_comm
enum m0_dtm_state up_state
struct m0_dtm_update_data udd_data
static struct m0_list list
M0_INTERNAL void m0_dtm_update_unpack(struct m0_dtm_update *update, const struct m0_dtm_update_descr *updd)
struct m0_dtm_remote * h_rem
#define M0_LOG(level,...)
M0_INTERNAL bool m0_dtm_update_invariant(const struct m0_dtm_update *update)
#define UPDATE_UP(update)
M0_INTERNAL bool m0_dtm_up_invariant(const struct m0_dtm_up *up)
void(* reo_send)(struct m0_dtm_remote *rem, struct m0_dtm_update *update)
void(* reo_resend)(struct m0_dtm_remote *rem, struct m0_dtm_update *update)
M0_INTERNAL bool m0_dtm_update_is_user(const struct m0_dtm_update *update)
M0_INTERNAL struct m0_dtm * nu_dtm(struct m0_dtm_nu *nu)
#define container_of(ptr, type, member)
M0_INTERNAL struct m0_dtm_update * up_update(struct m0_dtm_up *up)
static struct m0_rpc_item * item
const struct m0_dtm_update_ops * upd_ops
int(* hio_update)(struct m0_dtm_history *history, uint8_t id, struct m0_dtm_update *update)
M0_INTERNAL void history_lock(const struct m0_dtm_history *history)
M0_INTERNAL void m0_dtm_update_link(struct m0_tl *list, struct m0_dtm_update *update, uint32_t nr)
M0_INTERNAL void update_print(const struct m0_dtm_update *update)
M0_INTERNAL bool update_is_earlier(struct m0_dtm_update *update0, struct m0_dtm_update *update1)
M0_TL_DEFINE(history, M0_INTERNAL, struct m0_dtm_update)
#define M0_ERR_INFO(rc, fmt,...)
#define UPDATE_HISTORY(update)
M0_TL_DESCR_DEFINE(history, "dtm history updates", M0_INTERNAL, struct m0_dtm_update, upd_up.up_hi_linkage, upd_up.up_magix, M0_DTM_UP_MAGIX, M0_DTM_HI_MAGIX)
M0_INTERNAL int m0_dtm_history_unpack(struct m0_dtm *dtm, const struct m0_dtm_history_id *id, struct m0_dtm_history **out)
M0_INTERNAL bool m0_dtm_descr_matches_update(const struct m0_dtm_update *update, const struct m0_dtm_update_descr *updd)
M0_INTERNAL void m0_dtm_comm_set(struct m0_dtm_update *update, struct m0_fop *fop)
static void dtm_update_replied(struct m0_rpc_item *item)
M0_INTERNAL void update_reint(struct m0_dtm_update *update)
const struct m0_dtm_update_type * updo_type
static const struct m0_rpc_item_ops dtm_update_item_ops
enum m0_dtm_up_rule up_rule
M0_INTERNAL bool up_is_earlier(struct m0_dtm_up *up0, struct m0_dtm_up *up1)
#define UPDATE_REM(update)
M0_INTERNAL void m0_dtm_history_pack(const struct m0_dtm_history *history, struct m0_dtm_history_id *id)
void(* rio_replied)(struct m0_rpc_item *item)
M0_INTERNAL void history_unlock(const struct m0_dtm_history *history)
void(* updto_replied)(struct m0_dtm_update *updt)
enum m0_dtm_update_comm_state uc_state
M0_INTERNAL void m0_dtm_update_init(struct m0_dtm_update *update, struct m0_dtm_history *history, struct m0_dtm_oper *oper, const struct m0_dtm_update_data *data)
M0_INTERNAL void m0_dtm_update_reint(struct m0_dtm_update *update)
const struct m0_rpc_item_ops * ri_ops
M0_INTERNAL bool m0_dtm_update_matches_descr(const struct m0_dtm_update *update, const struct m0_dtm_update_descr *updd)
M0_INTERNAL void m0_dtm_update_list_fini(struct m0_tl *list)
M0_INTERNAL void m0_dtm_update_pack(const struct m0_dtm_update *update, struct m0_dtm_update_descr *updd)
const struct m0_dtm_remote_ops * re_ops
static struct m0_fop * fop
struct m0_fop * m0_rpc_item_to_fop(const struct m0_rpc_item *item)
M0_INTERNAL void m0_dtm_up_init(struct m0_dtm_up *up, struct m0_dtm_hi *hi, struct m0_dtm_op *op, enum m0_dtm_up_rule rule, m0_dtm_ver_t ver, m0_dtm_ver_t orig_ver)
M0_INTERNAL void m0_dtm_update_list_init(struct m0_tl *list)
static int scan(struct scanner *s)
M0_INTERNAL bool m0_dtm_oper_invariant(const struct m0_dtm_oper *oper)
#define m0_tl_for(name, head, obj)
struct m0_rpc_item f_item
#define m0_tl_exists(name, var, head,...)
#define m0_tl_forall(name, var, head,...)
const struct m0_dtm_history_ops * h_ops