23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_CONF 46 .sd_name =
"M0_RLF_INIT",
51 .sd_name =
"M0_RLF_SESS_WAIT_IDLE",
56 .sd_name =
"M0_RLF_SESS_TERMINATING",
61 .sd_name =
"M0_RLF_CONN_TERMINATING",
66 .sd_name =
"M0_RLF_FINI",
72 .
scf_name =
"rconfc_link FOM state machine",
294 #undef M0_TRACE_SUBSYSTEM
static void rconfc_link_fom_fini(struct m0_fom *fom)
M0_INTERNAL void m0_fom_wakeup(struct m0_fom *fom)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
M0_INTERNAL int m0_rconfc_mod_init(void)
static struct m0_sm_state_descr rconfc_link_fom_state_descr[]
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
M0_INTERNAL void rconfc_herd_link_cleanup(struct rconfc_link *lnk)
M0_INTERNAL struct m0_rpc_conn * m0_confc2conn(struct m0_confc *confc)
#define M0_LOG(level,...)
int(* fto_create)(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
M0_INTERNAL void m0_rpc_session_fini(struct m0_rpc_session *session)
static int rconfc_link_fom_create(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
M0_INTERNAL m0_time_t m0_rpc__down_timeout(void)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
M0_INTERNAL int m0_rpc_conn_terminate(struct m0_rpc_conn *conn, m0_time_t abs_timeout)
const struct m0_fom_type_ops rconfc_link_fom_type_ops
static const struct m0_sm_conf rconfc_link_fom_sm_conf
struct m0_clink rl_fom_clink
M0_INTERNAL void m0_rconfc_mod_fini(void)
static int rconfc_link_fom_tick(struct m0_fom *fom)
#define M0_AMB(obj, ptr, field)
void m0_fom_fini(struct m0_fom *fom)
M0_INTERNAL int m0_rpc_session_terminate(struct m0_rpc_session *session, m0_time_t abs_timeout)
static void rconfc_herd_link_fom_wait_on(struct rconfc_link *lnk, int phase)
struct m0_mutex rc_herd_lock
M0_INTERNAL void m0_fom_type_init(struct m0_fom_type *type, uint64_t id, const struct m0_fom_type_ops *ops, const struct m0_reqh_service_type *svc_type, const struct m0_sm_conf *sm)
M0_INTERNAL bool m0_confc_is_online(const struct m0_confc *confc)
struct m0_chan rc_herd_chan
struct m0_rconfc * rl_rconfc
M0_INTERNAL void rconfc_herd_link_fini(struct rconfc_link *lnk)
M0_INTERNAL void m0_rconfc_lock(struct m0_rconfc *rconfc)
M0_INTERNAL void m0_clink_cleanup(struct m0_clink *link)
M0_INTERNAL bool m0_confc_is_inited(const struct m0_confc *confc)
static struct m0_clink clink[RDWR_REQUEST_MAX]
static void rconfc_link_fom_clink_cleanup_fini(struct rconfc_link *lnk)
void(* rl_on_state_cb)(struct rconfc_link *lnk)
static size_t rconfc_link_fom_locality(const struct m0_fom *fom)
bool(* m0_chan_cb_t)(struct m0_clink *link)
void m0_clink_add_lock(struct m0_chan *chan, struct m0_clink *link)
M0_INTERNAL void m0_rconfc_unlock(struct m0_rconfc *rconfc)
static bool rconfc_link__on_sess_terminated(struct m0_clink *clink)
static struct m0_chan chan[RDWR_REQUEST_MAX]
#define M0_FI_ENABLED(tag)
const struct m0_fom_ops rconfc_link_fom_ops
static bool rconfc_link__on_sess_idle(struct m0_clink *clink)
struct m0_reqh_service_type m0_rpc_service_type
M0_INTERNAL void m0_clink_fini(struct m0_clink *link)
static struct m0_fop * fop
static void m0_fi_enable_once(const char *func, const char *tag)
static bool rconfc_link__on_conn_terminated(struct m0_clink *clink)
struct m0_fom_type rconfc_link_fom_type
void(* fo_fini)(struct m0_fom *fom)
M0_INTERNAL struct m0_rpc_session * m0_confc2sess(struct m0_confc *confc)
void m0_fom_phase_set(struct m0_fom *fom, int phase)
M0_INTERNAL void m0_chan_broadcast(struct m0_chan *chan)
M0_INTERNAL void m0_rpc_conn_fini(struct m0_rpc_conn *conn)
struct m0_fid rl_confd_fid
#define M0_IMPOSSIBLE(fmt,...)