Motr  M0
FOPs for Data Operations

Data Structures

struct  m0_io_descs
 
struct  m0_fop_cob_rw_reply
 
struct  m0_fop_cob_readv_rep
 
struct  m0_fop_cob_writev_rep
 
struct  m0_fop_cob_rw
 
struct  m0_fop_cob_readv
 
struct  m0_fop_cob_writev
 
struct  m0_test_ios_fop
 
struct  m0_fop_cob_common
 
struct  m0_fop_cob_create
 
struct  m0_fop_cob_delete
 
struct  m0_fop_cob_truncate
 
struct  m0_fop_cob_op_rep_common
 
struct  m0_fop_cob_op_reply
 
struct  m0_fop_cob_getattr
 
struct  m0_fop_cob_getattr_reply
 
struct  m0_fop_cob_setattr
 
struct  m0_fop_cob_setattr_reply
 

Enumerations

enum  m0_io_flags { M0_IO_FLAG_CROW = (1 << 0), M0_IO_FLAG_NOHOLE = (1 << 1), M0_IO_FLAG_SYNC = (1 << 2) }
 

Functions

struct m0_io_descs M0_XCA_DOMAIN (rpc)
 

Variables

struct m0_fop if_fop
 
int if_bulk_inited
 
struct m0_rpc_bulk if_rbulk
 
uint64_t if_magic
 
uint32_t id_nr
 
struct m0_net_buf_desc_dataid_descs
 
uint32_t id_nr
 
struct m0_net_buf_desc_dataid_descs
 
int32_t rwr_rc
 
uint64_t rwr_count
 
uint32_t rwr_repair_done
 
uint32_t rwr_cksum_nob_read
 
struct m0_fop_mod_rep rwr_mod_rep
 
struct m0_buf rwr_di_data_cksum
 
int32_t rwr_rc
 
uint64_t rwr_count
 
uint32_t rwr_repair_done
 
uint32_t rwr_cksum_nob_read
 
struct m0_fop_mod_rep rwr_mod_rep
 
struct m0_buf rwr_di_data_cksum
 
int32_t c_rc
 
struct m0_fop_cob_rw_reply c_rep
 
int32_t c_rc
 
struct m0_fop_cob_rw_reply c_rep
 
int32_t c_rc
 
struct m0_fop_cob_rw_reply c_rep
 
enum m0_io_flags M0_XCA_DOMAIN
 
struct m0_fid crw_gfid
 
struct m0_fid crw_fid
 
uint32_t crw_index
 
struct m0_fid crw_pver
 
uint64_t crw_lid
 
struct m0_io_descs crw_desc
 
struct m0_io_indexvec crw_ivec
 
uint64_t crw_flags
 
m0_bcount_t crw_cksum_size
 
struct m0_buf crw_di_data
 
struct m0_buf crw_di_data_cksum
 
struct m0_fid crw_gfid
 
struct m0_fid crw_fid
 
uint32_t crw_index
 
struct m0_fid crw_pver
 
uint64_t crw_lid
 
struct m0_io_descs crw_desc
 
struct m0_io_indexvec crw_ivec
 
uint64_t crw_flags
 
m0_bcount_t crw_cksum_size
 
struct m0_buf crw_di_data
 
struct m0_buf crw_di_data_cksum
 
struct m0_fop_cob_rw c_rwv
 
struct m0_fop_cob_rw c_rwv
 
struct m0_fop_cob_rw c_rwv
 
uint64_t if_st
 
struct m0_net_buf_desc if_nbd
 
uint64_t if_st
 
struct m0_net_buf_desc if_nbd
 
struct m0_fop_cob c_body
 
struct m0_fid c_gobfid
 
struct m0_fid c_cobfid
 
struct m0_fid c_pver
 
uint32_t c_cob_idx
 
uint32_t c_cob_type
 
uint64_t c_flags
 
struct m0_fop_cob c_body
 
struct m0_fid c_gobfid
 
struct m0_fid c_cobfid
 
struct m0_fid c_pver
 
uint32_t c_cob_idx
 
uint32_t c_cob_type
 
uint64_t c_flags
 
struct m0_fop_cob_common cc_common
 
struct m0_fop_cob_common cc_common
 
struct m0_fop_cob_common cd_common
 
struct m0_fop_cob_common cd_common
 
struct m0_fop_cob_common ct_common
 
uint64_t ct_size
 
struct m0_io_indexvec ct_io_ivec
 
struct m0_fop_cob_common ct_common
 
uint64_t ct_size
 
struct m0_io_indexvec ct_io_ivec
 
struct m0_fop_mod_rep cor_mod_rep
 
struct m0_fop_mod_rep cor_mod_rep
 
int32_t cor_rc
 
struct m0_fop_cob_op_rep_common cor_common
 
int32_t cor_rc
 
struct m0_fop_cob_op_rep_common cor_common
 
struct m0_fop_cob_common cg_common
 
struct m0_fop_cob_common cg_common
 
int32_t cgr_rc
 
struct m0_fop_cob_op_rep_common cgr_common
 
struct m0_fop_cob cgr_body
 
int32_t cgr_rc
 
struct m0_fop_cob_op_rep_common cgr_common
 
struct m0_fop_cob cgr_body
 
struct m0_fop_cob_common cs_common
 
struct m0_fop_cob_common cs_common
 
int32_t csr_rc
 
struct m0_fop_cob_op_rep_common csr_common
 
int32_t csr_rc
 
struct m0_fop_cob_op_rep_common csr_common
 

Detailed Description

This component contains the File Operation Packets (FOP) definitions for following operations

It describes the FOP formats along with brief description of the flow.

Note: As authorization is carried on server, all request FOPs contain uid and gid. For authentication, nid is included in every FOP. This is to serve very primitive authentication for now.

Enumeration Type Documentation

◆ m0_io_flags

Enumerator
M0_IO_FLAG_CROW 

Create cob on write if not present

M0_IO_FLAG_NOHOLE 

Return error if read see holes

M0_IO_FLAG_SYNC 

Wait until the transaction is persistent.

Definition at line 364 of file io_fops.h.

Function Documentation

◆ M0_XCA_DOMAIN()

struct m0_io_descs M0_XCA_DOMAIN ( rpc  )

Variable Documentation

◆ c_body [1/2]

struct m0_fop_cob c_body

attributes of this cob

Definition at line 454 of file io_fops.h.

◆ c_body [2/2]

struct m0_fop_cob c_body

attributes of this cob

Definition at line 279 of file io_fops.h.

◆ c_cob_idx [1/2]

uint32_t c_cob_idx

Unique cob index in pool.

Definition at line 294 of file io_fops.h.

◆ c_cob_idx [2/2]

uint32_t c_cob_idx

Unique cob index in pool.

Definition at line 469 of file io_fops.h.

◆ c_cob_type [1/2]

uint32_t c_cob_type

Cob type to identfiy whether it is of regular or md cob.

Definition at line 297 of file io_fops.h.

◆ c_cob_type [2/2]

uint32_t c_cob_type

Cob type to identfiy whether it is of regular or md cob.

Definition at line 472 of file io_fops.h.

◆ c_cobfid [1/2]

struct m0_fid c_cobfid

Fid of component object.

Definition at line 463 of file io_fops.h.

◆ c_cobfid [2/2]

struct m0_fid c_cobfid

Fid of component object.

Definition at line 288 of file io_fops.h.

◆ c_flags [1/2]

uint64_t c_flags

Miscellaneous flags.

Definition at line 300 of file io_fops.h.

◆ c_flags [2/2]

uint64_t c_flags

Miscellaneous flags.

Definition at line 475 of file io_fops.h.

◆ c_gobfid [1/2]

struct m0_fid c_gobfid

Fid of global file.

Definition at line 458 of file io_fops.h.

◆ c_gobfid [2/2]

struct m0_fid c_gobfid

Fid of global file.

Definition at line 283 of file io_fops.h.

◆ c_pver [1/2]

struct m0_fid c_pver

Pool version of component object.

Definition at line 466 of file io_fops.h.

◆ c_pver [2/2]

struct m0_fid c_pver

Pool version of component object.

Definition at line 291 of file io_fops.h.

◆ c_rc [1/3]

int32_t c_rc

Definition at line 278 of file io_fops.h.

◆ c_rc [2/3]

int32_t c_rc

Definition at line 347 of file io_fops.h.

◆ c_rc [3/3]

int32_t c_rc

Definition at line 359 of file io_fops.h.

◆ c_rep [1/3]

struct m0_fop_cob_rw_reply c_rep

Common read/write reply.

Common read/write reply structure.

Definition at line 280 of file io_fops.h.

◆ c_rep [2/3]

struct m0_fop_cob_rw_reply c_rep

Common read/write reply.

Definition at line 349 of file io_fops.h.

◆ c_rep [3/3]

struct m0_fop_cob_rw_reply c_rep

Common read/write reply structure.

Definition at line 361 of file io_fops.h.

◆ c_rwv [1/3]

struct m0_fop_cob_rw c_rwv

Common definition of read/write fops.

Definition at line 430 of file io_fops.h.

◆ c_rwv [2/3]

struct m0_fop_cob_rw c_rwv

Common definition of read/write fops.

Definition at line 279 of file io_fops.h.

◆ c_rwv [3/3]

struct m0_fop_cob_rw c_rwv

Common definition of read/write fops.

Definition at line 444 of file io_fops.h.

◆ cc_common [1/2]

struct m0_fop_cob_common cc_common

Definition at line 484 of file io_fops.h.

◆ cc_common [2/2]

struct m0_fop_cob_common cc_common

Definition at line 278 of file io_fops.h.

◆ cd_common [1/2]

struct m0_fop_cob_common cd_common

Definition at line 495 of file io_fops.h.

◆ cd_common [2/2]

struct m0_fop_cob_common cd_common

Definition at line 278 of file io_fops.h.

◆ cg_common [1/2]

struct m0_fop_cob_common cg_common

Definition at line 531 of file io_fops.h.

◆ cg_common [2/2]

struct m0_fop_cob_common cg_common

Definition at line 278 of file io_fops.h.

◆ cgr_body [1/2]

struct m0_fop_cob cgr_body

attributes of this cob

Definition at line 282 of file io_fops.h.

◆ cgr_body [2/2]

struct m0_fop_cob cgr_body

attributes of this cob

Definition at line 542 of file io_fops.h.

◆ cgr_common [1/2]

struct m0_fop_cob_op_rep_common cgr_common

common part of a cob reply

Definition at line 280 of file io_fops.h.

◆ cgr_common [2/2]

struct m0_fop_cob_op_rep_common cgr_common

common part of a cob reply

Definition at line 540 of file io_fops.h.

◆ cgr_rc [1/2]

int32_t cgr_rc

Definition at line 278 of file io_fops.h.

◆ cgr_rc [2/2]

int32_t cgr_rc

Definition at line 538 of file io_fops.h.

◆ cor_common [1/2]

struct m0_fop_cob_op_rep_common cor_common

Definition at line 279 of file io_fops.h.

◆ cor_common [2/2]

struct m0_fop_cob_op_rep_common cor_common

Definition at line 524 of file io_fops.h.

◆ cor_mod_rep [1/2]

struct m0_fop_mod_rep cor_mod_rep

Returned values for an UPDATE operation

Definition at line 279 of file io_fops.h.

◆ cor_mod_rep [2/2]

struct m0_fop_mod_rep cor_mod_rep

Returned values for an UPDATE operation

Definition at line 516 of file io_fops.h.

◆ cor_rc [1/2]

int32_t cor_rc

Definition at line 278 of file io_fops.h.

◆ cor_rc [2/2]

int32_t cor_rc

Definition at line 523 of file io_fops.h.

◆ crw_cksum_size [1/2]

m0_bcount_t crw_cksum_size

Checksum and tag values for the input data blocks.

Definition at line 316 of file io_fops.h.

◆ crw_cksum_size [2/2]

m0_bcount_t crw_cksum_size

Checksum and tag values for the input data blocks.

Definition at line 413 of file io_fops.h.

◆ crw_desc [1/2]

struct m0_io_descs crw_desc

Net buf descriptors representing the m0_net_buffer containing the IO buffers.

Definition at line 301 of file io_fops.h.

◆ crw_desc [2/2]

struct m0_io_descs crw_desc

Net buf descriptors representing the m0_net_buffer containing the IO buffers.

Definition at line 398 of file io_fops.h.

◆ crw_di_data [1/2]

struct m0_buf crw_di_data

Definition at line 317 of file io_fops.h.

◆ crw_di_data [2/2]

struct m0_buf crw_di_data

Definition at line 414 of file io_fops.h.

◆ crw_di_data_cksum [1/2]

struct m0_buf crw_di_data_cksum

Checksum value used for write operation for read it will be unused

Definition at line 319 of file io_fops.h.

◆ crw_di_data_cksum [2/2]

struct m0_buf crw_di_data_cksum

Checksum value used for write operation for read it will be unused

Definition at line 416 of file io_fops.h.

◆ crw_fid [1/2]

struct m0_fid crw_fid

File identifier of read/write request.

Definition at line 383 of file io_fops.h.

◆ crw_fid [2/2]

struct m0_fid crw_fid

File identifier of read/write request.

Definition at line 286 of file io_fops.h.

◆ crw_flags [1/2]

uint64_t crw_flags

Miscellaneous flags.

Definition at line 314 of file io_fops.h.

◆ crw_flags [2/2]

uint64_t crw_flags

Miscellaneous flags.

Definition at line 411 of file io_fops.h.

◆ crw_gfid [1/2]

struct m0_fid crw_gfid

File identifier for global file. This is needed during degraded mode write IO when SNS repair subsystem is queried for status of SNS repair process with respect to this global fid.

Definition at line 380 of file io_fops.h.

◆ crw_gfid [2/2]

struct m0_fid crw_gfid

File identifier for global file. This is needed during degraded mode write IO when SNS repair subsystem is queried for status of SNS repair process with respect to this global fid.

Definition at line 283 of file io_fops.h.

◆ crw_index [1/2]

uint32_t crw_index

cob index in the pool verion.

Definition at line 289 of file io_fops.h.

◆ crw_index [2/2]

uint32_t crw_index

cob index in the pool verion.

Definition at line 386 of file io_fops.h.

◆ crw_ivec [1/2]

struct m0_io_indexvec crw_ivec

Index vectors representing the extent information for the IO request.

Todo:
Perhaps it would be easier to change client to send io_index_vec as 2 sequences (of the same length): first indices, then counts. Such sequence can be converted to m0_indexvec without allocating intermediary structure and it might simplify client code too, if it uses indexvecs.

Definition at line 312 of file io_fops.h.

◆ crw_ivec [2/2]

struct m0_io_indexvec crw_ivec

Index vectors representing the extent information for the IO request.

Todo:
Perhaps it would be easier to change client to send io_index_vec as 2 sequences (of the same length): first indices, then counts. Such sequence can be converted to m0_indexvec without allocating intermediary structure and it might simplify client code too, if it uses indexvecs.

Definition at line 409 of file io_fops.h.

◆ crw_lid [1/2]

uint64_t crw_lid

Layout id of the file this cob belongs to.

Definition at line 295 of file io_fops.h.

◆ crw_lid [2/2]

uint64_t crw_lid

Layout id of the file this cob belongs to.

Definition at line 392 of file io_fops.h.

◆ crw_pver [1/2]

struct m0_fid crw_pver

Pool version for read/write request.

Definition at line 292 of file io_fops.h.

◆ crw_pver [2/2]

struct m0_fid crw_pver

Pool version for read/write request.

Definition at line 389 of file io_fops.h.

◆ cs_common [1/2]

struct m0_fop_cob_common cs_common

Definition at line 278 of file io_fops.h.

◆ cs_common [2/2]

struct m0_fop_cob_common cs_common

Definition at line 549 of file io_fops.h.

◆ csr_common [1/2]

struct m0_fop_cob_op_rep_common csr_common

common part of a cob reply

Definition at line 280 of file io_fops.h.

◆ csr_common [2/2]

struct m0_fop_cob_op_rep_common csr_common

common part of a cob reply

Definition at line 558 of file io_fops.h.

◆ csr_rc [1/2]

int32_t csr_rc

Definition at line 278 of file io_fops.h.

◆ csr_rc [2/2]

int32_t csr_rc

Definition at line 556 of file io_fops.h.

◆ ct_common [1/2]

struct m0_fop_cob_common ct_common

Definition at line 502 of file io_fops.h.

◆ ct_common [2/2]

struct m0_fop_cob_common ct_common

Definition at line 278 of file io_fops.h.

◆ ct_io_ivec [1/2]

struct m0_io_indexvec ct_io_ivec

Definition at line 283 of file io_fops.h.

◆ ct_io_ivec [2/2]

struct m0_io_indexvec ct_io_ivec

Definition at line 507 of file io_fops.h.

◆ ct_size [1/2]

uint64_t ct_size

Definition at line 281 of file io_fops.h.

◆ ct_size [2/2]

uint64_t ct_size

Definition at line 505 of file io_fops.h.

◆ id_descs [1/2]

struct m0_net_buf_desc_data* id_descs

Definition at line 279 of file io_fops.h.

◆ id_descs [2/2]

struct m0_net_buf_desc_data* id_descs

Definition at line 311 of file io_fops.h.

◆ id_nr [1/2]

uint32_t id_nr

Definition at line 278 of file io_fops.h.

◆ id_nr [2/2]

uint32_t id_nr

Definition at line 310 of file io_fops.h.

◆ if_bulk_inited

int if_bulk_inited

Definition at line 173 of file io_fops.h.

◆ if_fop

struct m0_fop if_fop

Inline fop for a generic IO fop.

Definition at line 172 of file io_fops.h.

◆ if_magic

uint64_t if_magic

Magic constant for IO fop.

Definition at line 177 of file io_fops.h.

◆ if_nbd [1/2]

struct m0_net_buf_desc if_nbd

Definition at line 279 of file io_fops.h.

◆ if_nbd [2/2]

struct m0_net_buf_desc if_nbd

Definition at line 449 of file io_fops.h.

◆ if_rbulk

struct m0_rpc_bulk if_rbulk

Rpc bulk structure containing zero vector for io fop.

Definition at line 175 of file io_fops.h.

◆ if_st [1/2]

uint64_t if_st

Definition at line 278 of file io_fops.h.

◆ if_st [2/2]

uint64_t if_st

Definition at line 448 of file io_fops.h.

◆ M0_XCA_DOMAIN

enum m0_io_flags M0_XCA_DOMAIN

◆ rwr_cksum_nob_read [1/2]

uint32_t rwr_cksum_nob_read

Total number of checksum bytes read by FOP till now for debug

Definition at line 294 of file io_fops.h.

◆ rwr_cksum_nob_read [2/2]

uint32_t rwr_cksum_nob_read

Total number of checksum bytes read by FOP till now for debug

Definition at line 334 of file io_fops.h.

◆ rwr_count [1/2]

uint64_t rwr_count

Number of bytes read or written.

Definition at line 282 of file io_fops.h.

◆ rwr_count [2/2]

uint64_t rwr_count

Number of bytes read or written.

Definition at line 322 of file io_fops.h.

◆ rwr_di_data_cksum [1/2]

struct m0_buf rwr_di_data_cksum

Checksum data returned to client during Read operation

Definition at line 300 of file io_fops.h.

◆ rwr_di_data_cksum [2/2]

struct m0_buf rwr_di_data_cksum

Checksum data returned to client during Read operation

Definition at line 340 of file io_fops.h.

◆ rwr_mod_rep [1/2]

struct m0_fop_mod_rep rwr_mod_rep

Returned values for an UPDATE operation

Definition at line 297 of file io_fops.h.

◆ rwr_mod_rep [2/2]

struct m0_fop_mod_rep rwr_mod_rep

Returned values for an UPDATE operation

Definition at line 337 of file io_fops.h.

◆ rwr_rc [1/2]

int32_t rwr_rc

Status code of operation.

Definition at line 279 of file io_fops.h.

◆ rwr_rc [2/2]

int32_t rwr_rc

Status code of operation.

Definition at line 319 of file io_fops.h.

◆ rwr_repair_done [1/2]

uint32_t rwr_repair_done

A field indicating whether repair has finished or not for given global fid. rwr_repair_done == 1 indicates SNS repair has not started at all. rwr_repair_done == 2 indicates file is still be to be repaired. rwr_repair_done == 3 indicates file has been repaired.

Definition at line 291 of file io_fops.h.

◆ rwr_repair_done [2/2]

uint32_t rwr_repair_done

A field indicating whether repair has finished or not for given global fid. rwr_repair_done == 1 indicates SNS repair has not started at all. rwr_repair_done == 2 indicates file is still be to be repaired. rwr_repair_done == 3 indicates file has been repaired.

Definition at line 331 of file io_fops.h.