Motr  M0
SNS copy machine aggregation group
Collaboration diagram for SNS copy machine aggregation group:

Data Structures

struct  m0_sns_cm_ag
 
struct  m0_sns_cm_ag_iter
 
struct  m0_sns_cm_rebalance_ag
 
struct  m0_sns_cm_repair_ag_failure_ctx
 
struct  m0_sns_cm_repair_ag
 

Enumerations

enum  ag_iter_state {
  AIS_FID_NEXT, AIS_FID_LOCK, AIS_FID_ATTR, AIS_GROUP_NEXT,
  AIS_FINI, AIS_NR
}
 

Functions

static enum ag_iter_state ai_state (struct m0_sns_cm_ag_iter *ai)
 
static struct m0_sns_cmai2sns (struct m0_sns_cm_ag_iter *ai)
 
static void ai_state_set (struct m0_sns_cm_ag_iter *ai, int state)
 
static bool _is_fid_valid (struct m0_sns_cm_ag_iter *ai, struct m0_fid *fid)
 
static int ai_group_next (struct m0_sns_cm_ag_iter *ai)
 
static int ai_fid_attr (struct m0_sns_cm_ag_iter *ai)
 
static int __file_lock (struct m0_sns_cm *scm, const struct m0_fid *fid, struct m0_sns_cm_file_ctx **fctx)
 
static int ai_pm_set (struct m0_sns_cm_ag_iter *ai, struct m0_fid *pv_id)
 
static int ai_fid_lock (struct m0_sns_cm_ag_iter *ai)
 
static int ai_fid_next (struct m0_sns_cm_ag_iter *ai)
 
M0_INTERNAL int m0_sns_cm_ag__next (struct m0_sns_cm *scm, const struct m0_cm_ag_id *id_curr, struct m0_cm_ag_id *id_next)
 
M0_INTERNAL int m0_sns_cm_ag_iter_init (struct m0_sns_cm_ag_iter *ai)
 
M0_INTERNAL void m0_sns_cm_ag_iter_fini (struct m0_sns_cm_ag_iter *ai)
 
M0_INTERNAL struct m0_cmsnsag2cm (const struct m0_sns_cm_ag *sag)
 
M0_INTERNAL struct m0_sns_cm_agag2snsag (const struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_sns_cm_ag_agid_setup (const struct m0_fid *gob_fid, uint64_t group, struct m0_cm_ag_id *agid)
 
M0_INTERNAL void agid2fid (const struct m0_cm_ag_id *id, struct m0_fid *fid)
 
M0_INTERNAL uint64_t agid2group (const struct m0_cm_ag_id *id)
 
M0_INTERNAL uint64_t m0_sns_cm_ag_local_cp_nr (const struct m0_cm_aggr_group *ag)
 
M0_INTERNAL void m0_sns_cm_ag_fini (struct m0_sns_cm_ag *sag)
 
M0_INTERNAL int m0_sns_cm_ag_init (struct m0_sns_cm_ag *sag, struct m0_cm *cm, const struct m0_cm_ag_id *id, const struct m0_cm_aggr_group_ops *ag_ops, bool has_incoming)
 
M0_INTERNAL bool m0_sns_cm_ag_has_incoming_from (struct m0_cm_aggr_group *ag, struct m0_cm_proxy *proxy)
 
static bool ag_id_is_in (const struct m0_cm_ag_id *id, const struct m0_cm_sw *interval)
 
M0_INTERNAL bool m0_sns_cm_ag_is_frozen_on (struct m0_cm_aggr_group *ag, struct m0_cm_proxy *pxy)
 
M0_INTERNAL bool m0_sns_cm_ag_has_data (struct m0_sns_cm_file_ctx *fctx, uint64_t group)
 
M0_INTERNAL struct m0_sns_cm_rebalance_agsag2rebalanceag (const struct m0_sns_cm_ag *sag)
 
static void rebalance_ag_fini (struct m0_cm_aggr_group *ag)
 
static bool rebalance_ag_can_fini (const struct m0_cm_aggr_group *ag)
 
M0_INTERNAL int m0_sns_cm_rebalance_ag_alloc (struct m0_cm *cm, const struct m0_cm_ag_id *id, bool has_incoming, struct m0_cm_aggr_group **out)
 
M0_INTERNAL int m0_sns_cm_rebalance_ag_setup (struct m0_sns_cm_ag *sag, struct m0_pdclust_layout *pl)
 
M0_INTERNAL void m0_sns_cm_acc_cp_init (struct m0_sns_cm_cp *scp, struct m0_sns_cm_ag *ag)
 
M0_INTERNAL int m0_sns_cm_acc_cp_setup (struct m0_sns_cm_cp *scp, struct m0_fid *tgt_cobfid, uint64_t tgt_cob_index, uint64_t failed_unit_idx, uint64_t data_seg_nr)
 
M0_INTERNAL int repair_cp_bufvec_split (struct m0_cm_cp *cp)
 
M0_INTERNAL struct m0_sns_cm_repair_agsag2repairag (const struct m0_sns_cm_ag *sag)
 
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)
 
static int incr_recover_failure_register (struct m0_sns_cm_repair_ag *rag)
 
static int incr_recover_init (struct m0_sns_cm_repair_ag *rag, struct m0_pdclust_layout *pl)
 
static void incr_recover_fini (struct m0_sns_cm_repair_ag *rag)
 
static uint32_t ag_in_remaining_bufs (struct m0_sns_cm_repair_ag *rag)
 
static void acc_check_fini (struct m0_sns_cm_repair_ag *rag)
 
static void repair_ag_fini (struct m0_cm_aggr_group *ag)
 
static uint32_t repair_ag_inactive_acc_nr (struct m0_cm_aggr_group *ag)
 
static bool repair_ag_can_fini (const struct m0_cm_aggr_group *ag)
 
static uint64_t repair_ag_target_unit (struct m0_sns_cm_ag *sag, struct m0_pdclust_layout *pl, struct m0_pdclust_instance *pi, uint64_t fdev, uint64_t funit)
 
static int repair_ag_failure_ctxs_setup (struct m0_sns_cm_repair_ag *rag, const struct m0_bitmap *fmap, struct m0_pdclust_layout *pl)
 
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 int m0_sns_cm_repair_ag_setup (struct m0_sns_cm_ag *sag, struct m0_pdclust_layout *pl)
 
M0_INTERNAL bool m0_sns_cm_ag_acc_is_full_with (const struct m0_cm_cp *acc, uint64_t nr_cps)
 

Variables

static struct m0_sm_state_descr ai_sd [AIS_NR]
 
static const struct m0_sm_conf ai_sm_conf
 
static int(* ai_action [])(struct m0_sns_cm_ag_iter *ai)
 
static const struct m0_cm_aggr_group_ops sns_cm_rebalance_ag_ops
 
static const struct m0_cm_aggr_group_ops sns_cm_repair_ag_ops
 

Detailed Description

Enumeration Type Documentation

◆ ag_iter_state

Enumerator
AIS_FID_NEXT 
AIS_FID_LOCK 
AIS_FID_ATTR 
AIS_GROUP_NEXT 
AIS_FINI 
AIS_NR 

Definition at line 50 of file ag.c.

Function Documentation

◆ __file_lock()

static int __file_lock ( struct m0_sns_cm scm,
const struct m0_fid fid,
struct m0_sns_cm_file_ctx **  fctx 
)
static

Definition at line 216 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _is_fid_valid()

static bool _is_fid_valid ( struct m0_sns_cm_ag_iter ai,
struct m0_fid fid 
)
static

Definition at line 109 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acc_check_fini()

static void acc_check_fini ( struct m0_sns_cm_repair_ag rag)
static

Definition at line 191 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ag2snsag()

M0_INTERNAL struct m0_sns_cm_ag * ag2snsag ( const struct m0_cm_aggr_group ag)

Definition at line 391 of file ag.c.

Here is the caller graph for this function:

◆ ag_id_is_in()

static bool ag_id_is_in ( const struct m0_cm_ag_id id,
const struct m0_cm_sw interval 
)
static

Definition at line 535 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ag_in_remaining_bufs()

static uint32_t ag_in_remaining_bufs ( struct m0_sns_cm_repair_ag rag)
static

Calculates remaining of the unused reserved buffers for a given aggregation group.

Definition at line 175 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ agid2fid()

M0_INTERNAL void agid2fid ( const struct m0_cm_ag_id id,
struct m0_fid fid 
)

Definition at line 405 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ agid2group()

M0_INTERNAL uint64_t agid2group ( const struct m0_cm_ag_id id)

Definition at line 413 of file ag.c.

Here is the caller graph for this function:

◆ ai2sns()

static struct m0_sns_cm* ai2sns ( struct m0_sns_cm_ag_iter ai)
static

Definition at line 99 of file ag.c.

Here is the caller graph for this function:

◆ ai_fid_attr()

static int ai_fid_attr ( struct m0_sns_cm_ag_iter ai)
static

Definition at line 191 of file ag.c.

Here is the call graph for this function:

◆ ai_fid_lock()

static int ai_fid_lock ( struct m0_sns_cm_ag_iter ai)
static

Definition at line 257 of file ag.c.

Here is the call graph for this function:

◆ ai_fid_next()

static int ai_fid_next ( struct m0_sns_cm_ag_iter ai)
static

Definition at line 282 of file ag.c.

Here is the call graph for this function:

◆ ai_group_next()

static int ai_group_next ( struct m0_sns_cm_ag_iter ai)
static

Definition at line 125 of file ag.c.

Here is the call graph for this function:

◆ ai_pm_set()

static int ai_pm_set ( struct m0_sns_cm_ag_iter ai,
struct m0_fid pv_id 
)
static

Definition at line 232 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ai_state()

static enum ag_iter_state ai_state ( struct m0_sns_cm_ag_iter ai)
static

Definition at line 94 of file ag.c.

Here is the caller graph for this function:

◆ ai_state_set()

static void ai_state_set ( struct m0_sns_cm_ag_iter ai,
int  state 
)
static

Definition at line 104 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incr_recover_failure_register()

static int incr_recover_failure_register ( struct m0_sns_cm_repair_ag rag)
static

Definition at line 92 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incr_recover_fini()

static void incr_recover_fini ( struct m0_sns_cm_repair_ag rag)
static

Definition at line 165 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incr_recover_init()

static int incr_recover_init ( struct m0_sns_cm_repair_ag rag,
struct m0_pdclust_layout pl 
)
static

Definition at line 117 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_acc_cp_init()

M0_INTERNAL void m0_sns_cm_acc_cp_init ( struct m0_sns_cm_cp scp,
struct m0_sns_cm_ag sag 
)

Initialises accumulator copy packet and its corresponding FOM.

Definition at line 108 of file acc_cp.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_acc_cp_setup()

M0_INTERNAL int m0_sns_cm_acc_cp_setup ( struct m0_sns_cm_cp scp,
struct m0_fid tgt_cobfid,
uint64_t  tgt_cob_index,
uint64_t  failed_unit_idx,
uint64_t  data_seg_nr 
)

Configures accumulator copy packet and acquires data buffers.

Definition at line 130 of file acc_cp.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag__next()

M0_INTERNAL int m0_sns_cm_ag__next ( struct m0_sns_cm scm,
const struct m0_cm_ag_id id_curr,
struct m0_cm_ag_id id_next 
)

Definition at line 320 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag_acc_is_full_with()

M0_INTERNAL bool m0_sns_cm_ag_acc_is_full_with ( const struct m0_cm_cp acc,
uint64_t  nr_cps 
)

Returns true if all the necessary copy packets are transformed or accumulated into the aggregation group accumulator for a given copy machine operation, viz. sns-repair or sns-rebalance.

Returns true if all the local copy packets are transformed in the accumulator copy packet.

See also
struct m0_sns_cm_repair_ag_failure_ctx::fc_tgt_acc_cp

Definition at line 562 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag_agid_setup()

M0_INTERNAL void m0_sns_cm_ag_agid_setup ( const struct m0_fid gob_fid,
uint64_t  group,
struct m0_cm_ag_id agid 
)

Definition at line 396 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag_fini()

M0_INTERNAL void m0_sns_cm_ag_fini ( struct m0_sns_cm_ag sag)

Finalises given sns specific generic aggregation group. Invokes m0_cm_aggr_group_fini().

Definition at line 443 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag_has_data()

M0_INTERNAL bool m0_sns_cm_ag_has_data ( struct m0_sns_cm_file_ctx fctx,
uint64_t  group 
)

Definition at line 577 of file ag.c.

Here is the call graph for this function:

◆ m0_sns_cm_ag_has_incoming_from()

M0_INTERNAL bool m0_sns_cm_ag_has_incoming_from ( struct m0_cm_aggr_group ag,
struct m0_cm_proxy proxy 
)

Definition at line 528 of file ag.c.

Here is the call graph for this function:

◆ m0_sns_cm_ag_init()

M0_INTERNAL int m0_sns_cm_ag_init ( struct m0_sns_cm_ag sag,
struct m0_cm cm,
const struct m0_cm_ag_id id,
const struct m0_cm_aggr_group_ops ag_ops,
bool  has_incoming 
)

Initialises given sns specific generic aggregation group. Invokes m0_cm_aggr_group_init().

Definition at line 464 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag_is_frozen_on()

M0_INTERNAL bool m0_sns_cm_ag_is_frozen_on ( struct m0_cm_aggr_group ag,
struct m0_cm_proxy pxy 
)

Returns true iff aggregation group cannot progress. This can happen during sns repair/rebalance quiesce or abort operation. An aggregation group can be frozen in following cases, case 1: The given proxy has completed (i.e. there will be no more outgoing copy packets created by the proxy) and there are still incoming copy packets expected from the proxy. case 2: There are incoming aggregation groups which have received all the relevant copy packets from the remote replicas but pump fom is already stopped so there will be no more local copy packets created if any.

Definition at line 541 of file ag.c.

Here is the call graph for this function:

◆ m0_sns_cm_ag_iter_fini()

M0_INTERNAL void m0_sns_cm_ag_iter_fini ( struct m0_sns_cm_ag_iter ai)

Definition at line 380 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag_iter_init()

M0_INTERNAL int m0_sns_cm_ag_iter_init ( struct m0_sns_cm_ag_iter ai)

Definition at line 369 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_ag_local_cp_nr()

M0_INTERNAL uint64_t m0_sns_cm_ag_local_cp_nr ( const struct m0_cm_aggr_group ag)

Returns number of copy packets corresponding to the units local to the given node for an aggregation group.

Definition at line 420 of file ag.c.

Here is the call graph for this function:

◆ m0_sns_cm_rebalance_ag_alloc()

M0_INTERNAL int m0_sns_cm_rebalance_ag_alloc ( struct m0_cm cm,
const struct m0_cm_ag_id id,
bool  has_incoming,
struct m0_cm_aggr_group **  out 
)

Allocates and initializes aggregation group for the given m0_cm_ag_id. Caller is responsible to lock the copy machine before calling this function.

Precondition
m0_cm_is_locked(cm) == true

Definition at line 107 of file ag.c.

Here is the call graph for this function:

◆ m0_sns_cm_rebalance_ag_setup()

M0_INTERNAL int m0_sns_cm_rebalance_ag_setup ( struct m0_sns_cm_ag sag,
struct m0_pdclust_layout pl 
)

Definition at line 138 of file ag.c.

◆ m0_sns_cm_repair_ag_alloc()

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 
)

Allocates and initializes aggregation group for the given m0_cm_ag_id. Every sns copy machine aggregation group maintains accumulator copy packets, equivalent to the number of failed units in the aggregation group. During initialisation, the buffers are acquired for the accumulator copy packets from the copy machine buffer pool. Caller is responsible to lock the copy machine before calling this function.

Precondition
m0_cm_is_locked(cm) == true

Definition at line 453 of file ag.c.

Here is the call graph for this function:

◆ m0_sns_cm_repair_ag_inbufs()

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 
)

Calculates number of buffers required for all the incoming copy packets.

Definition at line 66 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ m0_sns_cm_repair_ag_setup()

M0_INTERNAL int m0_sns_cm_repair_ag_setup ( struct m0_sns_cm_ag sag,
struct m0_pdclust_layout pl 
)

Definition at line 525 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rebalance_ag_can_fini()

static bool rebalance_ag_can_fini ( const struct m0_cm_aggr_group ag)
static

Definition at line 84 of file ag.c.

Here is the call graph for this function:

◆ rebalance_ag_fini()

static void rebalance_ag_fini ( struct m0_cm_aggr_group ag)
static

Definition at line 53 of file ag.c.

Here is the call graph for this function:

◆ repair_ag_can_fini()

static bool repair_ag_can_fini ( const struct m0_cm_aggr_group ag)
static

Definition at line 273 of file ag.c.

Here is the call graph for this function:

◆ repair_ag_failure_ctxs_setup()

static int repair_ag_failure_ctxs_setup ( struct m0_sns_cm_repair_ag rag,
const struct m0_bitmap fmap,
struct m0_pdclust_layout pl 
)
static

Definition at line 323 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ repair_ag_fini()

static void repair_ag_fini ( struct m0_cm_aggr_group ag)
static

Definition at line 230 of file ag.c.

Here is the call graph for this function:

◆ repair_ag_inactive_acc_nr()

static uint32_t repair_ag_inactive_acc_nr ( struct m0_cm_aggr_group ag)
static

Definition at line 255 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ repair_ag_target_unit()

static uint64_t repair_ag_target_unit ( struct m0_sns_cm_ag sag,
struct m0_pdclust_layout pl,
struct m0_pdclust_instance pi,
uint64_t  fdev,
uint64_t  funit 
)
static

Definition at line 297 of file ag.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ repair_cp_bufvec_split()

M0_INTERNAL int repair_cp_bufvec_split ( struct m0_cm_cp cp)

Splits the merged bufvec into original form, where first bufvec no longer contains the metadata of all the bufvecs in the copy packet.

Definition at line 47 of file xform.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sag2rebalanceag()

M0_INTERNAL struct m0_sns_cm_rebalance_ag* sag2rebalanceag ( const struct m0_sns_cm_ag sag)

Definition at line 48 of file ag.c.

Here is the caller graph for this function:

◆ sag2repairag()

M0_INTERNAL struct m0_sns_cm_repair_ag * sag2repairag ( const struct m0_sns_cm_ag sag)

Definition at line 61 of file ag.c.

Here is the caller graph for this function:

◆ snsag2cm()

M0_INTERNAL struct m0_cm * snsag2cm ( const struct m0_sns_cm_ag sag)

Definition at line 386 of file ag.c.

Here is the caller graph for this function:

Variable Documentation

◆ ai_action

int(* ai_action[])(struct m0_sns_cm_ag_iter *ai)
static
Initial value:
= {
}
static int ai_fid_lock(struct m0_sns_cm_ag_iter *ai)
Definition: ag.c:257
static int ai_group_next(struct m0_sns_cm_ag_iter *ai)
Definition: ag.c:125
static int ai_fid_next(struct m0_sns_cm_ag_iter *ai)
Definition: ag.c:282
static int ai_fid_attr(struct m0_sns_cm_ag_iter *ai)
Definition: ag.c:191

Definition at line 313 of file ag.c.

◆ ai_sd

struct m0_sm_state_descr ai_sd[AIS_NR]
static
Initial value:
= {
.sd_flags = M0_SDF_INITIAL,
.sd_name = "ag iter fid lock",
},
.sd_flags = 0,
.sd_name = "ag iter fid next",
.sd_allowed = M0_BITS(AIS_FID_LOCK, AIS_FINI)
},
.sd_flags = 0,
.sd_name = "ag iter fid attr",
},
.sd_flags = 0,
.sd_name = "ag iter group next",
},
[AIS_FINI] = {
.sd_flags = M0_SDF_TERMINAL,
.sd_name = "ag iter fini",
.sd_allowed = 0
}
}
#define M0_BITS(...)
Definition: misc.h:236
Definition: ag.c:55

Definition at line 59 of file ag.c.

◆ ai_sm_conf

const struct m0_sm_conf ai_sm_conf
static
Initial value:
= {
.scf_name = "sm: ai_conf",
.scf_nr_states = ARRAY_SIZE(ai_sd),
.scf_state = ai_sd
}
static struct m0_sm_state_descr ai_sd[AIS_NR]
Definition: ag.c:59
#define ARRAY_SIZE(a)
Definition: misc.h:45

Definition at line 88 of file ag.c.

◆ sns_cm_rebalance_ag_ops

const struct m0_cm_aggr_group_ops sns_cm_rebalance_ag_ops
static
Initial value:
= {
.cago_ag_can_fini = rebalance_ag_can_fini,
.cago_fini = rebalance_ag_fini,
.cago_local_cp_nr = m0_sns_cm_ag_local_cp_nr,
.cago_has_incoming_from = m0_sns_cm_ag_has_incoming_from,
.cago_is_frozen_on = m0_sns_cm_ag_is_frozen_on
}
M0_INTERNAL uint64_t m0_sns_cm_ag_local_cp_nr(const struct m0_cm_aggr_group *ag)
Definition: ag.c:420
M0_INTERNAL bool m0_sns_cm_ag_is_frozen_on(struct m0_cm_aggr_group *ag, struct m0_cm_proxy *pxy)
Definition: ag.c:541
M0_INTERNAL bool m0_sns_cm_ag_has_incoming_from(struct m0_cm_aggr_group *ag, struct m0_cm_proxy *proxy)
Definition: ag.c:528
static bool rebalance_ag_can_fini(const struct m0_cm_aggr_group *ag)
Definition: ag.c:84
static void rebalance_ag_fini(struct m0_cm_aggr_group *ag)
Definition: ag.c:53

Definition at line 99 of file ag.c.

◆ sns_cm_repair_ag_ops

const struct m0_cm_aggr_group_ops sns_cm_repair_ag_ops
static
Initial value:
= {
.cago_ag_can_fini = repair_ag_can_fini,
.cago_fini = repair_ag_fini,
.cago_local_cp_nr = m0_sns_cm_ag_local_cp_nr,
.cago_has_incoming_from = m0_sns_cm_ag_has_incoming_from,
.cago_is_frozen_on = m0_sns_cm_ag_is_frozen_on
}
M0_INTERNAL uint64_t m0_sns_cm_ag_local_cp_nr(const struct m0_cm_aggr_group *ag)
Definition: ag.c:420
M0_INTERNAL bool m0_sns_cm_ag_is_frozen_on(struct m0_cm_aggr_group *ag, struct m0_cm_proxy *pxy)
Definition: ag.c:541
M0_INTERNAL bool m0_sns_cm_ag_has_incoming_from(struct m0_cm_aggr_group *ag, struct m0_cm_proxy *proxy)
Definition: ag.c:528
static void repair_ag_fini(struct m0_cm_aggr_group *ag)
Definition: ag.c:230
static bool repair_ag_can_fini(const struct m0_cm_aggr_group *ag)
Definition: ag.c:273

Definition at line 289 of file ag.c.