Motr  M0
iter.c File Reference
#include "lib/trace.h"
#include "lib/memory.h"
#include "lib/assert.h"
#include "lib/errno.h"
#include "lib/misc.h"
#include "lib/finject.h"
#include "cob/cob.h"
#include "mdstore/mdstore.h"
#include "reqh/reqh.h"
#include "ioservice/io_service.h"
#include "cm/proxy.h"
#include "sns/parity_repair.h"
#include "sns/cm/cm.h"
#include "sns/cm/cp.h"
#include "sns/cm/ag.h"
#include "sns/cm/cm_utils.h"
#include "sns/cm/file.h"
#include "ioservice/fid_convert.h"
Include dependency graph for iter.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_SNSCM
 

Enumerations

enum  { SNS_REPAIR_ITER_MAGIX = 0x33BAADF00DCAFE77 }
 
enum  cm_data_iter_phase {
  ITPH_INIT, ITPH_IDLE, ITPH_COB_NEXT, ITPH_GROUP_NEXT,
  ITPH_FID_NEXT, ITPH_FID_LOCK, ITPH_FID_LOCK_WAIT, ITPH_FID_ATTR_LAYOUT,
  ITPH_CP_SETUP, ITPH_AG_SETUP, ITPH_FINI, ITPH_NR
}
 

Functions

 M0_BOB_DEFINE (static, &iter_bob, m0_sns_cm_iter)
 
M0_INTERNAL struct m0_sns_cmit2sns (struct m0_sns_cm_iter *it)
 
static enum cm_data_iter_phase iter_phase (const struct m0_sns_cm_iter *it)
 
static void iter_phase_set (struct m0_sns_cm_iter *it, int phase)
 
static bool iter_layout_invariant (enum cm_data_iter_phase phase, const struct m0_sns_cm_iter_file_ctx *ifc)
 
static bool iter_invariant (const struct m0_sns_cm_iter *it)
 
static void unit_to_cobfid (struct m0_sns_cm_iter_file_ctx *ifc, struct m0_fid *cob_fid_out)
 
M0_INTERNAL int __fid_next (struct m0_sns_cm_iter *it, struct m0_fid *fid_next)
 
static int __file_context_init (struct m0_sns_cm_iter *it)
 
static int group__next (struct m0_sns_cm_iter *it)
 
static int iter_fid_attr_layout (struct m0_sns_cm_iter *it)
 
static int iter_fid_lock (struct m0_sns_cm_iter *it)
 
static int iter_fid_lock_wait (struct m0_sns_cm_iter *it)
 
static int iter_fid_next (struct m0_sns_cm_iter *it)
 
static bool __has_incoming (struct m0_sns_cm *scm, struct m0_sns_cm_file_ctx *fctx, uint64_t group)
 
static bool __group_skip (struct m0_sns_cm_iter *it, uint64_t group)
 
static int __group_alloc (struct m0_sns_cm *scm, struct m0_fid *gfid, uint64_t group, struct m0_pdclust_layout *pl, bool has_incoming, struct m0_cm_aggr_group **ag)
 
static int __group_next (struct m0_sns_cm_iter *it)
 
static int iter_group_next (struct m0_sns_cm_iter *it)
 
static int iter_ag_setup (struct m0_sns_cm_iter *it)
 
static bool unit_has_data (struct m0_sns_cm *scm, uint32_t unit)
 
static int iter_cp_setup (struct m0_sns_cm_iter *it)
 
static int iter_cob_next (struct m0_sns_cm_iter *it)
 
M0_INTERNAL int iter_idle (struct m0_sns_cm_iter *it)
 
M0_INTERNAL int m0_sns_cm_iter_next (struct m0_cm *cm, struct m0_cm_cp *cp)
 
M0_INTERNAL int m0_sns_cm_iter_init (struct m0_sns_cm_iter *it)
 
M0_INTERNAL int m0_sns_cm_iter_start (struct m0_sns_cm_iter *it)
 
M0_INTERNAL void m0_sns_cm_iter_stop (struct m0_sns_cm_iter *it)
 
M0_INTERNAL void m0_sns_cm_iter_fini (struct m0_sns_cm_iter *it)
 

Variables

enum { ... }  M0_XCA_DOMAIN
 
static const struct m0_bob_type iter_bob
 
static int(* iter_action [])(struct m0_sns_cm_iter *it)
 
static struct m0_sm_state_descr cm_iter_sd [ITPH_NR]
 
static const struct m0_sm_conf cm_iter_sm_conf
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_SNSCM

Definition at line 23 of file iter.c.