Motr  M0
meta.c File Reference
#include "lib/trace.h"
#include "lib/memory.h"
#include "lib/vec.h"
#include "pool/pool.h"
#include "fid/fid.h"
#include "dix/imask.h"
#include "dix/layout.h"
#include "dix/client.h"
#include "dix/client_internal.h"
#include "dix/meta.h"
Include dependency graph for meta.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_DIX
 
#define DFID(x, y)   M0_FID_TINIT('x', (x), (y))
 

Enumerations

enum  { DIX_META_INDICES_ROOT = 0, DIX_META_INDICES_LAYOUT = 1, DIX_META_INDICES_DESCR = 2, DIX_META_INDICES_NR = 3 }
 

Functions

static struct m0_dix_climeta_req_cli (const struct m0_dix_meta_req *req)
 
static int dix_mreq_rc (const struct m0_dix_req *req)
 
static int dix_root_add (struct m0_bufvec *keys, struct m0_bufvec *vals, uint32_t idx, const char *iname, const struct m0_fid *ifid, const struct m0_dix_ldesc *idesc)
 
static int dix_root_put (struct m0_dix_cli *cli, struct m0_sm_group *grp, const struct m0_dix_ldesc *dld_layout, const struct m0_dix_ldesc *dld_ldescr)
 
static void dix_meta_indices_fini (struct m0_dix *meta)
 
static int dix_meta_indices_init (struct m0_dix *indices, struct m0_dix_cli *cli, struct m0_dix_ldesc *dld_layout, struct m0_dix_ldesc *dld_ldescr)
 
static int dix_meta_create (struct m0_dix_cli *cli, struct m0_sm_group *grp, struct m0_dix_ldesc *dld_layout, struct m0_dix_ldesc *dld_ldescr)
 
static int dix_meta_delete (struct m0_dix_cli *cli, struct m0_sm_group *grp, struct m0_dix_ldesc *dld_layout, struct m0_dix_ldesc *dld_ldescr)
 
static bool dix_meta_op_done_cb (struct m0_clink *clink)
 
M0_INTERNAL void m0_dix_meta_req_init (struct m0_dix_meta_req *req, struct m0_dix_cli *cli, struct m0_sm_group *grp)
 
static void dix_meta_req_fini (struct m0_dix_meta_req *req)
 
M0_INTERNAL void m0_dix_meta_req_fini (struct m0_dix_meta_req *req)
 
M0_INTERNAL void m0_dix_meta_req_fini_lock (struct m0_dix_meta_req *req)
 
M0_INTERNAL void m0_dix_meta_lock (struct m0_dix_meta_req *req)
 
M0_INTERNAL void m0_dix_meta_unlock (struct m0_dix_meta_req *req)
 
M0_INTERNAL int m0_dix_meta_generic_rc (const struct m0_dix_meta_req *req)
 
M0_INTERNAL int m0_dix_meta_item_rc (const struct m0_dix_meta_req *req, uint64_t idx)
 
M0_INTERNAL int m0_dix_meta_req_nr (const struct m0_dix_meta_req *req)
 
M0_INTERNAL int m0_dix_meta_create (struct m0_dix_cli *cli, struct m0_sm_group *grp, struct m0_dix_ldesc *dld_layout, struct m0_dix_ldesc *dld_ldescr)
 
M0_INTERNAL int m0_dix_meta_check (struct m0_dix_cli *cli, struct m0_sm_group *grp, bool *result)
 
M0_INTERNAL int m0_dix_root_read (struct m0_dix_meta_req *req)
 
static int dix_layout_from_read_rep (struct m0_dix_meta_req *req, uint64_t idx, const struct m0_fid *expected, struct m0_dix_ldesc *out)
 
M0_INTERNAL int m0_dix_root_read_rep (struct m0_dix_meta_req *req, struct m0_dix_ldesc *layout, struct m0_dix_ldesc *ldescr)
 
M0_INTERNAL int m0_dix_meta_destroy (struct m0_dix_cli *cli, struct m0_sm_group *grp)
 
M0_INTERNAL int m0_dix_ldescr_put (struct m0_dix_meta_req *req, const uint64_t *lid, const struct m0_dix_ldesc *ldesc, uint32_t nr)
 
M0_INTERNAL int m0_dix_ldescr_get (struct m0_dix_meta_req *req, const uint64_t *lid, uint32_t nr)
 
M0_INTERNAL int m0_dix_ldescr_rep_get (struct m0_dix_meta_req *req, uint64_t idx, struct m0_dix_ldesc *ldesc)
 
M0_INTERNAL int m0_dix_ldescr_del (struct m0_dix_meta_req *req, const uint64_t *lid, uint32_t nr)
 
M0_INTERNAL int m0_dix_layout_put (struct m0_dix_meta_req *req, const struct m0_fid *fid, const struct m0_dix_layout *dlay, uint32_t nr, uint32_t flags)
 
M0_INTERNAL int m0_dix_layout_del (struct m0_dix_meta_req *req, const struct m0_fid *fid, uint32_t nr)
 
M0_INTERNAL int m0_dix_layout_get (struct m0_dix_meta_req *req, const struct m0_fid *fid, uint32_t nr)
 
M0_INTERNAL int m0_dix_layout_rep_get (struct m0_dix_meta_req *req, uint64_t idx, struct m0_dix_layout *dlay)
 
M0_INTERNAL int m0_dix_index_list (struct m0_dix_meta_req *req, const struct m0_fid *start_fid, uint32_t indices_nr)
 
M0_INTERNAL int m0_dix_index_list_rep_nr (struct m0_dix_meta_req *req)
 
M0_INTERNAL int m0_dix_index_list_rep (struct m0_dix_meta_req *req, uint32_t idx, struct m0_fid *fid)
 

Variables

M0_INTERNAL const struct m0_fid m0_dix_root_fid = DFID(0,1)
 
M0_INTERNAL const struct m0_fid m0_dix_layout_fid = DFID(0,2)
 
M0_INTERNAL const struct m0_fid m0_dix_ldescr_fid = DFID(0,3)