Motr  M0
idx_dix.c File Reference
#include "lib/trace.h"
#include "lib/assert.h"
#include "lib/tlist.h"
#include "lib/memory.h"
#include "fid/fid.h"
#include "pool/pool.h"
#include "conf/helpers.h"
#include "motr/client_internal.h"
#include "motr/layout.h"
#include "motr/idx.h"
#include "motr/sync.h"
#include "dix/fid_convert.h"
#include "dix/meta.h"
#include "dix/req.h"
#include "dix/client.h"
#include "motr/addb.h"
#include "dtm0/dtx.h"
Include dependency graph for idx_dix.c:

Go to the source code of this file.

Data Structures

struct  dix_inst
 
struct  dix_req
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_CLIENT
 
#define OI_IFID(oi)   (struct m0_fid *)&(oi)->oi_idx->in_entity.en_id
 

Functions

static bool dixreq_clink_cb (struct m0_clink *cl)
 
static bool dixreq_clink_dtx_cb (struct m0_clink *cl)
 
static bool dix_meta_req_clink_cb (struct m0_clink *cl)
 
static void dix_req_immed_failure (struct dix_req *req, int rc)
 
static void dixreq_completed_post (struct dix_req *req, int rc)
 
static bool idx_is_distributed (const struct m0_op_idx *oi)
 
static void idx_sync_record_update (struct m0_op *op, struct m0_rpc_session *rpc_session, struct m0_be_tx_remid *remid)
 
static void cas_sync_record_update (struct m0_cas_req *creq, struct m0_rpc_session *rpc_session, struct m0_be_tx_remid *remid)
 
static void dix_sync_record_update (struct m0_dix_req *dreq, struct m0_rpc_session *rpc_session, struct m0_be_tx_remid *remid)
 
static struct dix_instdix_inst (const struct m0_op_idx *oi)
 
static struct m0_dix_cliop_dixc (const struct m0_op_idx *oi)
 
M0_INTERNAL struct dix_instent_dix_inst (const struct m0_entity *ent)
 
M0_INTERNAL struct m0_dix_client_dixc (const struct m0_entity *ent)
 
M0_INTERNAL struct m0_dix_cliol_dixc (const struct m0_op_layout *ol)
 
static struct m0_reqh_service_ctxsvc_find (const struct m0_op_idx *oi)
 
static void cas_list_reply_copy (struct m0_cas_req *req, int32_t *rcs, struct m0_bufvec *bvec)
 
static void cas_get_reply_copy (struct m0_cas_req *req, int32_t *rcs, struct m0_bufvec *bvec)
 
static void cas_next_reply_copy (struct m0_cas_req *req, int32_t *rcs, struct m0_bufvec *keys, struct m0_bufvec *vals)
 
static bool casreq_clink_cb (struct m0_clink *cl)
 
static void cas_req_prepare (struct dix_req *req, struct m0_cas_id *cid, struct m0_op_idx *oi)
 
static void cas_index_cancel (struct dix_req *dix_req)
 
static void cas_index_create_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void cas_index_delete_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void cas_index_lookup_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void cas_index_list_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void cas_put_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void cas_get_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void cas_del_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void cas_next_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dix_build (const struct m0_op_idx *oi, struct m0_dix *out)
 
static void cas_req_init (struct dix_req *req, struct m0_op_idx *oi)
 
static int dix_mreq_create (struct m0_op_idx *oi, struct dix_req **out)
 
static void to_dix_map (const struct m0_op *op, const struct m0_dix_req *req)
 
static int dix_req_create (struct m0_op_idx *oi, struct dix_req **out)
 
static void dix_req_destroy (struct dix_req *req)
 
static void dixreq_completed_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static int dix_list_reply_copy (struct m0_dix_meta_req *req, int32_t *rcs, struct m0_bufvec *bvec)
 
static void dix_get_reply_copy (struct m0_dix_req *dreq, int32_t *rcs, struct m0_bufvec *bvec)
 
static void dix_next_reply_copy (struct m0_dix_req *req, int32_t *rcs, struct m0_bufvec *keys, struct m0_bufvec *vals)
 
static void dixreq_stable_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dixreq_stable_post (struct dix_req *req, int rc)
 
static void dixreq_executed_post (struct dix_req *req, int rc)
 
static void dix_req_exec (struct dix_req *req, void(*exec_fn)(struct m0_sm_group *grp, struct m0_sm_ast *ast))
 
static uint32_t dix_set_cas_flags (struct m0_op_idx *oi)
 
static void dix_index_create_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static bool dix_iname_args_are_valid (const struct m0_op_idx *oi)
 
static void dix_index_delete_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dix_index_lookup_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dix_index_list_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dix_dreq_prepare (struct dix_req *req, struct m0_dix *dix, struct m0_op_idx *oi)
 
static void dix_put_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dix_get_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dix_del_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void dix_next_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
static void idx_op_cancel_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
M0_INTERNAL int m0__idx_cancel (struct m0_op_idx *oi)
 
static void dix_set_idx_flags (struct m0_op_idx *oi)
 
static int dix_index_create (struct m0_op_idx *oi)
 
static int dix_index_delete (struct m0_op_idx *oi)
 
static int dix_index_lookup (struct m0_op_idx *oi)
 
static int dix_index_list (struct m0_op_idx *oi)
 
static int dix_put (struct m0_op_idx *oi)
 
static int dix_get (struct m0_op_idx *oi)
 
static int dix_del (struct m0_op_idx *oi)
 
static int dix_next (struct m0_op_idx *oi)
 
static int dix_root_idx_pver (struct m0_client *m0c, struct m0_fid *out)
 
static int dix_client_init (struct dix_inst *inst, struct m0_client *m0c, struct m0_idx_dix_config *config)
 
static int idx_dix_init (void *svc)
 
static int idx_dix_fini (void *svc)
 
M0_INTERNAL void m0_idx_dix_register (void)
 

Variables

static struct m0_idx_query_ops dix_query_ops
 
static struct m0_idx_service_ops dix_svc_ops
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_CLIENT

Definition at line 24 of file idx_dix.c.