Motr  M0
Stobio

Data Structures

struct  m0_stob_io_fom
 

Enumerations

enum  stob_fom_phases {
  M0_FOPH_CREATE_STOB = M0_FOPH_NR + 1, M0_FOPH_READ_STOB_IO = M0_FOPH_NR + 1, M0_FOPH_READ_STOB_IO_WAIT, M0_FOPH_WRITE_STOB_IO = M0_FOPH_NR + 1,
  M0_FOPH_WRITE_STOB_IO_WAIT
}
 

Functions

struct m0_stob_domainreqh_ut_stob_domain_find (void)
 
static int stob_create_fom_create (struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
 
static int stob_read_fom_create (struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
 
static int stob_write_fom_create (struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
 
static int stob_create_fom_tick (struct m0_fom *fom)
 
static int stob_read_fom_tick (struct m0_fom *fom)
 
static int stob_write_fom_tick (struct m0_fom *fom)
 
static void stob_io_fom_fini (struct m0_fom *fom)
 
static size_t stob_find_fom_home_locality (const struct m0_fom *fom)
 
static struct m0_stobstob_object_find (const struct stob_io_fop_fid *fid, struct m0_fom *fom)
 
static int stob_io_fop_fom_create_helper (struct m0_fop *fop, struct m0_fom_ops *fom_ops, struct m0_fop_type *fop_type, struct m0_fom **out, struct m0_reqh *reqh)
 
static void fom_stob_write_credit (struct m0_fom *fom)
 
void m0_stob_io_fop_fini (void)
 
void m0_stob_io_fop_init (void)
 

Variables

struct m0_reqh_service_type m0_rpc_service_type
 
struct m0_fop_type m0_stob_io_create_fopt
 
struct m0_fop_type m0_stob_io_read_fopt
 
struct m0_fop_type m0_stob_io_write_fopt
 
struct m0_fop_type m0_stob_io_create_rep_fopt
 
struct m0_fop_type m0_stob_io_read_rep_fopt
 
struct m0_fop_type m0_stob_io_write_rep_fopt
 
struct m0_sm_state_descr stob_create_phases []
 
struct m0_sm_state_descr stob_read_phases []
 
const struct m0_sm_conf read_conf
 
struct m0_sm_state_descr stob_write_phases []
 
const struct m0_sm_conf write_conf
 
struct m0_fom sif_fom
 
struct m0_fopsif_rep_fop
 
struct m0_stobsif_stobj
 
struct m0_stob_io sif_stio
 
struct m0_fol_frag sif_fol_frag
 
static struct m0_fom_ops stob_create_fom_ops
 
static struct m0_fom_ops stob_write_fom_ops
 
static struct m0_fom_ops stob_read_fom_ops
 
static const struct m0_fom_type_ops stob_create_fom_type_ops
 
static const struct m0_fom_type_ops stob_read_fom_type_ops
 
static const struct m0_fom_type_ops stob_write_fom_type_ops
 

Detailed Description

Enumeration Type Documentation

◆ stob_fom_phases

Create, Write and Read fop specific fom execution phases

Enumerator
M0_FOPH_CREATE_STOB 
M0_FOPH_READ_STOB_IO 
M0_FOPH_READ_STOB_IO_WAIT 
M0_FOPH_WRITE_STOB_IO 
M0_FOPH_WRITE_STOB_IO_WAIT 

Definition at line 55 of file io_fop.c.

Function Documentation

◆ fom_stob_write_credit()

static void fom_stob_write_credit ( struct m0_fom fom)
static

Definition at line 469 of file io_fop.c.

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

◆ m0_stob_io_fop_fini()

void m0_stob_io_fop_fini ( void  )

Function to clean stob io fops

Definition at line 680 of file io_fop.c.

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

◆ m0_stob_io_fop_init()

void m0_stob_io_fop_init ( void  )

Function to intialise stob io fops.

Definition at line 616 of file io_fop.c.

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

◆ reqh_ut_stob_domain_find()

struct m0_stob_domain* reqh_ut_stob_domain_find ( void  )

Definition at line 169 of file reqh_fom_ut.c.

Here is the caller graph for this function:

◆ stob_create_fom_create()

static int stob_create_fom_create ( struct m0_fop fop,
struct m0_fom **  out,
struct m0_reqh reqh 
)
static

Creates a fom for create fop.

Definition at line 239 of file io_fop.c.

Here is the call graph for this function:

◆ stob_create_fom_tick()

static int stob_create_fom_tick ( struct m0_fom fom)
static

A simple non blocking create fop specific fom state method implemention.

Definition at line 315 of file io_fop.c.

Here is the call graph for this function:

◆ stob_find_fom_home_locality()

static size_t stob_find_fom_home_locality ( const struct m0_fom fom)
static

Finds home locality for this type of fom. This function, using a basic hashing method locates a home locality for a particular type of fome, inorder to have same locality of execution for a certain type of fom.

Definition at line 273 of file io_fop.c.

Here is the call graph for this function:

◆ stob_io_fom_fini()

static void stob_io_fom_fini ( struct m0_fom fom)
static

Fom specific clean up function, invokes m0_fom_fini()

Definition at line 602 of file io_fop.c.

Here is the call graph for this function:

◆ stob_io_fop_fom_create_helper()

static int stob_io_fop_fom_create_helper ( struct m0_fop fop,
struct m0_fom_ops fom_ops,
struct m0_fop_type fop_type,
struct m0_fom **  out,
struct m0_reqh reqh 
)
static

Fom initialization function, invoked from reqh_fop_handle. Invokes m0_fom_init()

Definition at line 208 of file io_fop.c.

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

◆ stob_object_find()

static struct m0_stob* stob_object_find ( const struct stob_io_fop_fid fid,
struct m0_fom fom 
)
static

Function to locate a storage object.

Definition at line 188 of file io_fop.c.

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

◆ stob_read_fom_create()

static int stob_read_fom_create ( struct m0_fop fop,
struct m0_fom **  out,
struct m0_reqh reqh 
)
static

Creates a fom for read fop.

Definition at line 259 of file io_fop.c.

Here is the call graph for this function:

◆ stob_read_fom_tick()

static int stob_read_fom_tick ( struct m0_fom fom)
static

A simple non blocking read fop specific fom state method implemention.

Definition at line 360 of file io_fop.c.

Here is the call graph for this function:

◆ stob_write_fom_create()

static int stob_write_fom_create ( struct m0_fop fop,
struct m0_fom **  out,
struct m0_reqh reqh 
)
static

Creates a fom for write fop.

Definition at line 249 of file io_fop.c.

Here is the call graph for this function:

◆ stob_write_fom_tick()

static int stob_write_fom_tick ( struct m0_fom fom)
static

A simple non blocking write fop specific fom state method implemention.

Definition at line 493 of file io_fop.c.

Here is the call graph for this function:

Variable Documentation

◆ m0_rpc_service_type

struct m0_reqh_service_type m0_rpc_service_type

Definition at line 120 of file service.c.

◆ m0_stob_io_create_fopt

struct m0_fop_type m0_stob_io_create_fopt

Definition at line 63 of file io_fop.c.

◆ m0_stob_io_create_rep_fopt

struct m0_fop_type m0_stob_io_create_rep_fopt

Definition at line 66 of file io_fop.c.

◆ m0_stob_io_read_fopt

struct m0_fop_type m0_stob_io_read_fopt

Definition at line 64 of file io_fop.c.

◆ m0_stob_io_read_rep_fopt

struct m0_fop_type m0_stob_io_read_rep_fopt

Definition at line 67 of file io_fop.c.

◆ m0_stob_io_write_fopt

struct m0_fop_type m0_stob_io_write_fopt

Definition at line 65 of file io_fop.c.

◆ m0_stob_io_write_rep_fopt

struct m0_fop_type m0_stob_io_write_rep_fopt

Definition at line 68 of file io_fop.c.

◆ read_conf

const struct m0_sm_conf read_conf
Initial value:
= {
.scf_name = "Stob read",
.scf_nr_states = ARRAY_SIZE(stob_read_phases),
.scf_state = stob_read_phases,
}
struct m0_sm_state_descr stob_read_phases[]
Definition: io_fop.c:78
#define ARRAY_SIZE(a)
Definition: misc.h:45

Definition at line 90 of file io_fop.c.

◆ sif_fol_frag

struct m0_fol_frag sif_fol_frag

Fol record part representing stob io operations. It should be pointed by m0_stob_io::si_fol_frag.

Definition at line 131 of file io_fop.c.

◆ sif_fom

struct m0_fom sif_fom

Generic m0_fom object.

Definition at line 120 of file io_fop.c.

◆ sif_rep_fop

struct m0_fop* sif_rep_fop

Reply FOP associated with request FOP above.

Definition at line 122 of file io_fop.c.

◆ sif_stio

struct m0_stob_io sif_stio

Stob IO packet for the operation.

Definition at line 126 of file io_fop.c.

◆ sif_stobj

struct m0_stob* sif_stobj

Stob object on which this FOM is acting.

Definition at line 124 of file io_fop.c.

◆ stob_create_fom_ops

struct m0_fom_ops stob_create_fom_ops
static
Initial value:
= {
.fo_fini = stob_io_fom_fini,
.fo_home_locality = stob_find_fom_home_locality
}
static void stob_io_fom_fini(struct m0_fom *fom)
Definition: io_fop.c:602
static size_t stob_find_fom_home_locality(const struct m0_fom *fom)
Definition: io_fop.c:273
static int stob_create_fom_tick(struct m0_fom *fom)
Definition: io_fop.c:315

Operation structures for respective foms

Definition at line 152 of file io_fop.c.

◆ stob_create_fom_type_ops

const struct m0_fom_type_ops stob_create_fom_type_ops
static
Initial value:
= {
.fto_create = stob_create_fom_create,
}
static int stob_create_fom_create(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
Definition: io_fop.c:239

Fom type operations structures for corresponding foms.

Definition at line 173 of file io_fop.c.

◆ stob_create_phases

struct m0_sm_state_descr stob_create_phases[]
Initial value:
= {
.sd_name = "Create stob",
.sd_allowed = (1 << M0_FOPH_SUCCESS) |
},
}

Definition at line 70 of file io_fop.c.

◆ stob_read_fom_ops

struct m0_fom_ops stob_read_fom_ops
static
Initial value:
= {
.fo_fini = stob_io_fom_fini,
.fo_tick = stob_read_fom_tick,
.fo_home_locality = stob_find_fom_home_locality
}
static void stob_io_fom_fini(struct m0_fom *fom)
Definition: io_fop.c:602
static size_t stob_find_fom_home_locality(const struct m0_fom *fom)
Definition: io_fop.c:273
static int stob_read_fom_tick(struct m0_fom *fom)
Definition: io_fop.c:360

Definition at line 164 of file io_fop.c.

◆ stob_read_fom_type_ops

const struct m0_fom_type_ops stob_read_fom_type_ops
static
Initial value:
= {
.fto_create = stob_read_fom_create,
}
static int stob_read_fom_create(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
Definition: io_fop.c:259

Definition at line 177 of file io_fop.c.

◆ stob_read_phases

struct m0_sm_state_descr stob_read_phases[]
Initial value:
= {
.sd_name = "Read stob",
.sd_allowed = (1 << M0_FOPH_READ_STOB_IO_WAIT) |
},
.sd_name = "Read stob wait",
.sd_allowed = (1 << M0_FOPH_SUCCESS)
},
}

Definition at line 78 of file io_fop.c.

◆ stob_write_fom_ops

struct m0_fom_ops stob_write_fom_ops
static
Initial value:
= {
.fo_fini = stob_io_fom_fini,
.fo_tick = stob_write_fom_tick,
.fo_home_locality = stob_find_fom_home_locality
}
static void stob_io_fom_fini(struct m0_fom *fom)
Definition: io_fop.c:602
static size_t stob_find_fom_home_locality(const struct m0_fom *fom)
Definition: io_fop.c:273
static int stob_write_fom_tick(struct m0_fom *fom)
Definition: io_fop.c:493

Definition at line 158 of file io_fop.c.

◆ stob_write_fom_type_ops

const struct m0_fom_type_ops stob_write_fom_type_ops
static
Initial value:
= {
.fto_create = stob_write_fom_create,
}
static int stob_write_fom_create(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
Definition: io_fop.c:249

Definition at line 181 of file io_fop.c.

◆ stob_write_phases

struct m0_sm_state_descr stob_write_phases[]
Initial value:
= {
.sd_name = "Write stob",
.sd_allowed = (1 << M0_FOPH_READ_STOB_IO_WAIT) |
},
.sd_name = "Write stob wait",
.sd_allowed = (1 << M0_FOPH_SUCCESS)
},
}

Definition at line 96 of file io_fop.c.

◆ write_conf

const struct m0_sm_conf write_conf
Initial value:
= {
.scf_name = "Stob write",
.scf_nr_states = ARRAY_SIZE(stob_write_phases),
.scf_state = stob_write_phases,
}
struct m0_sm_state_descr stob_write_phases[]
Definition: io_fop.c:96
#define ARRAY_SIZE(a)
Definition: misc.h:45

Definition at line 108 of file io_fop.c.