23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_SNSCM 50 uint64_t proxy_id,
const char *
local_ep,
52 const struct m0_cm_sw *out_interval);
111 "failed with rc: %d",
167 int64_t total_inbufs;
179 if (total_inbufs > 0) {
180 *
count = total_inbufs;
183 return M0_RC((
int)total_inbufs);
205 switch (device_state) {
242 #undef M0_TRACE_SUBSYSTEM
M0_INTERNAL void m0_cm_lock(struct m0_cm *cm)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
M0_INTERNAL void agid2fid(const struct m0_cm_ag_id *id, struct m0_fid *fid)
M0_INTERNAL bool m0_cm_is_dirty(struct m0_cm *cm)
struct m0_pool * pc_dix_pool
M0_INTERNAL struct m0_sns_cm * cm2sns(struct m0_cm *cm)
static int repair_cm_prepare(struct m0_cm *cm)
#define M0_LOG(level,...)
M0_INTERNAL int m0_sns_cm_has_space_for(struct m0_sns_cm *scm, struct m0_pdclust_layout *pl, uint64_t nr_bufs)
void fop_release(struct m0_ref *ref)
struct m0_layout * sf_layout
static struct m0_sns_cm * scm
struct m0_pool * pc_md_pool
M0_INTERNAL int m0_sns_cm_setup(struct m0_cm *cm)
#define container_of(ptr, type, member)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
M0_INTERNAL int m0_fid_cmp(const struct m0_fid *fid0, const struct m0_fid *fid1)
M0_INTERNAL const struct m0_cm_ops sns_repair_ops
static struct m0_reqh_service * service
static struct m0_pools_common pc
M0_INTERNAL void m0_cm_unlock(struct m0_cm *cm)
static void repair_cm_stop(struct m0_cm *cm)
M0_INTERNAL void m0_sns_cm_ha_msg(struct m0_cm *cm, struct m0_ha_msg *msg, int rc)
const struct m0_cm_cp_ops m0_sns_cm_repair_cp_ops
M0_INTERNAL enum sns_repair_state m0_sns_cm_fid_repair_done(struct m0_fid *gfid, struct m0_reqh *reqh, enum m0_pool_nd_state device_state)
struct m0_mutex sc_file_ctx_mutex
const struct m0_sns_cm_helpers repair_helpers
M0_INTERNAL int m0_sns_cm_start(struct m0_cm *cm)
M0_INTERNAL void m0_sns_cm_stop(struct m0_cm *cm)
const struct m0_cm_cp_ops * c_ops
struct m0_conf_cache cc_cache
M0_EXTERN struct m0_cm_type sns_repair_cmt
M0_INTERNAL int m0_sns_cm_prepare(struct m0_cm *cm)
M0_INTERNAL int m0_sns_cm_repair_ag_alloc(struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming, struct m0_cm_aggr_group **out)
M0_INTERNAL struct m0_pdclust_layout * m0_layout_to_pdl(const struct m0_layout *l)
M0_INTERNAL int m0_conf_obj_find_lock(struct m0_conf_cache *cache, const struct m0_fid *id, struct m0_conf_obj **out)
#define M0_CONF_CAST(ptr, type)
struct m0_confc * pc_confc
static struct m0_pool pool
M0_INTERNAL int m0_sns_cm_iter_next(struct m0_cm *cm, struct m0_cm_cp *cp)
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
static struct m0_cm_cp * repair_cm_cp_alloc(struct m0_cm *cm)
struct m0_sns_cm_iter_file_ctx si_fc
M0_INTERNAL struct m0_reqh_service * m0_reqh_service_find(const struct m0_reqh_service_type *st, const struct m0_reqh *reqh)
M0_INTERNAL bool m0_sns_is_peer(struct m0_cm *cm, struct m0_reqh_service_ctx *ctx)
static int repair_cm_get_space_for(struct m0_cm *cm, const struct m0_cm_ag_id *id, size_t *count)
M0_INTERNAL int m0_sns_cm_pool_ha_nvec_alloc(struct m0_pool *pool, enum m0_pool_nd_state state, struct m0_ha_nvec *nvec)
static const char * local_ep(const struct m0_cm *cm)
struct m0_reqh_service cm_service
M0_INTERNAL int64_t m0_sns_cm_repair_ag_inbufs(struct m0_sns_cm *scm, struct m0_sns_cm_file_ctx *fctx, const struct m0_cm_ag_id *id)
int(* cmo_setup)(struct m0_cm *cm)
struct m0_pools_common * rh_pools
static struct m0_fop * fop
M0_INTERNAL struct m0_sns_cm_file_ctx * m0_sns_cm_fctx_locate(struct m0_sns_cm *scm, struct m0_fid *fid)
struct m0_reqh_service_type ct_stype
M0_INTERNAL int m0_sns_cm_fail_dev_log(struct m0_cm *cm, enum m0_pool_nd_state state)
static struct m0_sns_cm_file_ctx fctx
struct m0_sns_cm_iter sc_it
M0_INTERNAL struct m0_cm_cp * m0_sns_cm_cp_alloc(struct m0_cm *cm)
M0_INTERNAL void m0_sns_cm_fini(struct m0_cm *cm)
struct m0_ha_note * nv_note
M0_INTERNAL bool m0_fid_is_valid(const struct m0_fid *fid)
M0_INTERNAL int m0_sns_cm_repair_sw_onwire_fop_setup(struct m0_cm *cm, struct m0_fop *fop, void(*fop_release)(struct m0_ref *), uint64_t proxy_id, const char *local_ep, const struct m0_cm_sw *sw, const struct m0_cm_sw *out_interval)
M0_INTERNAL bool m0_cm_is_locked(const struct m0_cm *cm)
#define m0_tl_for(name, head, obj)
const struct m0_sns_cm_helpers * sc_helpers
M0_INTERNAL bool m0_sns_cm_disk_has_dirty_pver(struct m0_cm *cm, struct m0_conf_drive *disk, bool clear)
M0_INTERNAL int m0_sns_cm_ag_next(struct m0_cm *cm, const struct m0_cm_ag_id *id_curr, struct m0_cm_ag_id *id_next)
M0_INTERNAL void m0_ha_local_state_set(const struct m0_ha_nvec *nvec)
struct m0_tl po_failed_devices