Motr  M0
pvers.c File Reference
#include "lib/trace.h"
#include "conf/pvers.h"
#include "conf/cache.h"
#include "conf/obj_ops.h"
#include "conf/walk.h"
#include "conf/glob.h"
#include "fd/fd.h"
#include "conf/objs/common.h"
#include "lib/combinations.h"
#include "lib/memory.h"
Include dependency graph for pvers.c:

Go to the source code of this file.

Data Structures

struct  arr_int
 
struct  arr_int_pos
 
struct  conf_pver_enumerate_st
 
struct  conf_pver_base_walk_st
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_CONF
 
#define CONF_PVER_VECTOR_LOG(owner, fid, vector)
 

Enumerations

enum  { MAX_FAILURES_NOT_REACHED, MAX_FAILURES_REACHED, MAX_FAILURES_EXCEEDED }
 
enum  { CONF_PVER_FID_MASK = 0x003fffffffffffffULL }
 

Functions

static int conf_pver_formulate (const struct m0_conf_pver *fpver, struct m0_conf_pver **out)
 
static int conf_pver_formulaic_base (const struct m0_conf_pver *fpver, struct m0_conf_pver **out)
 
static int conf_pver_objvs_count (struct m0_conf_pver *base, uint32_t *out)
 
static int conf_pver_virtual_create (const struct m0_fid *fid, struct m0_conf_pver *base, const uint32_t *allowance, struct arr_int *failed, struct m0_conf_pver **out)
 
static int conf_pver_failures_cid (struct m0_conf_pver *base, uint64_t *out)
 
static void conf_pver_subtree_delete (struct m0_conf_obj *obj)
 
static int conf_pver_recd_build (struct m0_conf_obj *obj, void *args)
 
static int conf_pver_formulaic_find_locked (uint32_t fpver_id, const struct m0_conf_root *root, const struct m0_conf_pver **out)
 
static int conf_pver_base_recd_update (const struct m0_conf_pool *pool)
 
static int conf_pver_find_locked (const struct m0_conf_pool *pool, const struct m0_fid *pver_to_skip, struct m0_conf_pver **out)
 
static int conf_pver_find_by_fid_locked (const struct m0_fid *fid, const struct m0_conf_root *root, struct m0_conf_pver **out)
 
M0_INTERNAL int m0_conf_pver_find (const struct m0_conf_pool *pool, const struct m0_fid *pver_to_skip, struct m0_conf_pver **out)
 
M0_INTERNAL int m0_conf_pver_find_by_fid (const struct m0_fid *fid, const struct m0_conf_root *root, struct m0_conf_pver **out)
 
M0_INTERNAL int m0_conf_pver_formulaic_find (uint32_t fpver_id, const struct m0_conf_root *root, const struct m0_conf_pver **out)
 
M0_INTERNAL int m0_conf_pver_formulaic_from_virtual (const struct m0_conf_pver *virtual, const struct m0_conf_root *root, const struct m0_conf_pver **out)
 
M0_INTERNAL bool m0_conf_pver_is_clean (const struct m0_conf_pver *pver)
 
M0_INTERNAL struct m0_fid m0_conf_pver_fid (enum m0_conf_pver_kind kind, uint64_t container, uint64_t key)
 
M0_INTERNAL int m0_conf_pver_fid_read (const struct m0_fid *fid, enum m0_conf_pver_kind *kind, uint64_t *container, uint64_t *key)
 
static struct m0_fid conf_objv_virtual_fid (struct m0_conf_cache *cache)
 
M0_INTERNAL unsigned m0_conf_pver_level (const struct m0_conf_obj *obj)
 
static int conf_pver_enumerate_w (struct m0_conf_obj *obj, void *args)
 
static void conf_pver_enumerate (struct m0_conf_pver *pver)
 
static int conf_objv_failed_fill (struct m0_conf_obj *obj, void *args)
 
static int conf_pver_base_obj_check (struct m0_conf_obj *obj, struct conf_pver_base_walk_st *st)
 
static int conf_pver_base_w (struct m0_conf_obj *obj, void *args)
 
static int conf_pver_tolerance_adjust (struct m0_conf_pver *pver)
 
static int tolerance_failure_cmp (struct m0_conf_pver *pv, const uint32_t *srecd)
 
int m0_conf_pver_status (struct m0_fid *fid, struct m0_confc *confc, struct m0_conf_pver_info *out_info)
 
static int conf_obj_mark_deleted (struct m0_conf_obj *obj, void *args M0_UNUSED)