23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_SNSCM 41 uint32_t *in_units_nr,
59 uint32_t local_spares = 0;
60 uint32_t tgt_unit_prev;
129 if (pcount !=
NULL) {
130 for (
i = 0;
i < pcount->
p_nr; ++
i) {
135 *in_cp_nr = incps * local_spares;
136 *in_units_nr = inunits;
179 for (j =
N + K; j <
N + K +
S; ++j) {
248 #undef M0_TRACE_SUBSYSTEM M0_INTERNAL uint64_t m0_sns_cm_ag_nr_data_units(const struct m0_pdclust_layout *pl)
M0_INTERNAL void m0_sns_cm_unit2cobfid(struct m0_sns_cm_file_ctx *fctx, const struct m0_pdclust_src_addr *sa, struct m0_pdclust_tgt_addr *ta, struct m0_fid *cfid_out)
M0_INTERNAL int m0_bitmap_init(struct m0_bitmap *map, size_t nr)
M0_INTERNAL void agid2fid(const struct m0_cm_ag_id *id, struct m0_fid *fid)
M0_INTERNAL int m0_sns_cm_repair_ag_setup(struct m0_sns_cm_ag *sag, struct m0_pdclust_layout *pl)
M0_INTERNAL void m0_bitmap_fini(struct m0_bitmap *map)
M0_INTERNAL const char * m0_sns_cm_tgt_ep(const struct m0_cm *cm, const struct m0_pool_version *pv, const struct m0_fid *cob_fid, struct m0_conf_obj **hostage)
struct m0_pool_version * pm_pver
M0_INTERNAL bool m0_sns_cm_is_local_cob(const struct m0_cm *cm, const struct m0_pool_version *pv, const struct m0_fid *cob_fid)
M0_INTERNAL int m0_sns_repair_spare_map(struct m0_poolmach *pm, const struct m0_fid *fid, struct m0_pdclust_layout *pl, struct m0_pdclust_instance *pi, uint64_t group, uint64_t unit, uint32_t *spare_slot_out, uint32_t *spare_slot_out_prev)
static bool repair_is_cob_failed(struct m0_poolmach *pm, uint32_t cob_index)
struct m0_layout * sf_layout
M0_INTERNAL void m0_sns_cm_fctx_unlock(struct m0_sns_cm_file_ctx *fctx)
static struct m0_sns_cm * scm
M0_INTERNAL uint64_t m0_sns_cm_ag_nr_parity_units(const struct m0_pdclust_layout *pl)
M0_INTERNAL int m0_poolmach_device_state(struct m0_poolmach *pm, uint32_t device_index, enum m0_pool_nd_state *state_out)
struct m0_poolmach * sf_pm
int(* sch_ag_in_cp_units)(const struct m0_sns_cm *scm, const struct m0_cm_ag_id *id, struct m0_sns_cm_file_ctx *fctx, uint32_t *in_cp_nr, uint32_t *in_units_nr, struct m0_cm_proxy_in_count *pcount)
M0_INTERNAL uint64_t agid2group(const struct m0_cm_ag_id *id)
static struct m0_sns_cm_ag * sag
M0_INTERNAL bool m0_sns_cm_is_cob_repairing(struct m0_poolmach *pm, uint32_t cob_index)
#define M0_ERR_INFO(rc, fmt,...)
static int repair_cob_locate(struct m0_sns_cm *scm, struct m0_cob_domain *cdom, struct m0_poolmach *pm, const struct m0_fid *cob_fid)
return M0_ERR(-EOPNOTSUPP)
const struct m0_sns_cm_helpers repair_helpers
enum m0_proxy_state px_status
M0_INTERNAL int m0_sns_cm_cob_locate(struct m0_cob_domain *cdom, const struct m0_fid *cob_fid)
static struct m0_fid cob_fid
M0_INTERNAL struct m0_pdclust_layout * m0_layout_to_pdl(const struct m0_layout *l)
M0_INTERNAL bool m0_sns_cm_is_cob_repaired(struct m0_poolmach *pm, uint32_t cob_index)
M0_INTERNAL void m0_bitmap_set(struct m0_bitmap *map, size_t idx, bool val)
M0_INTERNAL int m0_sns_repair_data_map(struct m0_poolmach *pm, struct m0_pdclust_layout *pl, struct m0_pdclust_instance *pi, uint64_t group_number, uint64_t spare_unit_number, uint64_t *data_unit_id_out)
M0_INTERNAL void m0_sns_cm_fctx_lock(struct m0_sns_cm_file_ctx *fctx)
static bool repair_ag_is_relevant(struct m0_sns_cm *scm, struct m0_sns_cm_file_ctx *fctx, uint64_t group)
M0_INTERNAL uint64_t m0_sns_cm_ag_nr_spare_units(const struct m0_pdclust_layout *pl)
M0_INTERNAL uint64_t m0_sns_cm_ag_size(const struct m0_pdclust_layout *pl)
static int repair_ag_in_cp_units(const struct m0_sns_cm *scm, const struct m0_cm_ag_id *id, struct m0_sns_cm_file_ctx *fctx, uint32_t *in_cp_nr, uint32_t *in_units_nr, struct m0_cm_proxy_in_count *pcount)
static struct m0_net_test_service svc
M0_INTERNAL bool m0_bitmap_get(const struct m0_bitmap *map, size_t idx)
M0_INTERNAL bool m0_sns_cm_unit_is_spare(struct m0_sns_cm_file_ctx *fctx, uint64_t group_nr, uint64_t spare_nr)
M0_INTERNAL void m0_confc_close(struct m0_conf_obj *obj)
struct m0_pdclust_instance * sf_pi
static struct m0_sns_cm_file_ctx fctx
#define m0_tl_find(name, var, head,...)
static uint64_t repair_ag_unit_end(const struct m0_pdclust_layout *pl)
bool(* sch_is_cob_failed)(struct m0_poolmach *pm, uint32_t cob_index)
const struct m0_sns_cm_helpers * sc_helpers
static uint64_t repair_ag_unit_start(const struct m0_pdclust_layout *pl)