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 366 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 456 of file io_fops.h.

◆ c_body [2/2]

struct m0_fop_cob c_body

attributes of this cob

Definition at line 281 of file io_fops.h.

◆ c_cob_idx [1/2]

uint32_t c_cob_idx

Unique cob index in pool.

Definition at line 296 of file io_fops.h.

◆ c_cob_idx [2/2]

uint32_t c_cob_idx

Unique cob index in pool.

Definition at line 471 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 299 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 474 of file io_fops.h.

◆ c_cobfid [1/2]

struct m0_fid c_cobfid

Fid of component object.

Definition at line 465 of file io_fops.h.

◆ c_cobfid [2/2]

struct m0_fid c_cobfid

Fid of component object.

Definition at line 290 of file io_fops.h.

◆ c_flags [1/2]

uint64_t c_flags

Miscellaneous flags.

Definition at line 302 of file io_fops.h.

◆ c_flags [2/2]

uint64_t c_flags

Miscellaneous flags.

Definition at line 477 of file io_fops.h.

◆ c_gobfid [1/2]

struct m0_fid c_gobfid

Fid of global file.

Definition at line 460 of file io_fops.h.

◆ c_gobfid [2/2]

struct m0_fid c_gobfid

Fid of global file.

Definition at line 285 of file io_fops.h.

◆ c_pver [1/2]

struct m0_fid c_pver

Pool version of component object.

Definition at line 468 of file io_fops.h.

◆ c_pver [2/2]

struct m0_fid c_pver

Pool version of component object.

Definition at line 293 of file io_fops.h.

◆ c_rc [1/3]

int32_t c_rc

Definition at line 280 of file io_fops.h.

◆ c_rc [2/3]

int32_t c_rc

Definition at line 349 of file io_fops.h.

◆ c_rc [3/3]

int32_t c_rc

Definition at line 361 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 282 of file io_fops.h.

◆ c_rep [2/3]

struct m0_fop_cob_rw_reply c_rep

Common read/write reply.

Definition at line 351 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 363 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 432 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 281 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 446 of file io_fops.h.

◆ cc_common [1/2]

struct m0_fop_cob_common cc_common

Definition at line 486 of file io_fops.h.

◆ cc_common [2/2]

struct m0_fop_cob_common cc_common

Definition at line 280 of file io_fops.h.

◆ cd_common [1/2]

struct m0_fop_cob_common cd_common

Definition at line 497 of file io_fops.h.

◆ cd_common [2/2]

struct m0_fop_cob_common cd_common

Definition at line 280 of file io_fops.h.

◆ cg_common [1/2]

struct m0_fop_cob_common cg_common

Definition at line 533 of file io_fops.h.

◆ cg_common [2/2]

struct m0_fop_cob_common cg_common

Definition at line 280 of file io_fops.h.

◆ cgr_body [1/2]

struct m0_fop_cob cgr_body

attributes of this cob

Definition at line 284 of file io_fops.h.

◆ cgr_body [2/2]

struct m0_fop_cob cgr_body

attributes of this cob

Definition at line 544 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 282 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 542 of file io_fops.h.

◆ cgr_rc [1/2]

int32_t cgr_rc

Definition at line 280 of file io_fops.h.

◆ cgr_rc [2/2]

int32_t cgr_rc

Definition at line 540 of file io_fops.h.

◆ cor_common [1/2]

struct m0_fop_cob_op_rep_common cor_common

Definition at line 281 of file io_fops.h.

◆ cor_common [2/2]

struct m0_fop_cob_op_rep_common cor_common

Definition at line 526 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 281 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 518 of file io_fops.h.

◆ cor_rc [1/2]

int32_t cor_rc

Definition at line 280 of file io_fops.h.

◆ cor_rc [2/2]

int32_t cor_rc

Definition at line 525 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 318 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 415 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 303 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 400 of file io_fops.h.

◆ crw_di_data [1/2]

struct m0_buf crw_di_data

Definition at line 319 of file io_fops.h.

◆ crw_di_data [2/2]

struct m0_buf crw_di_data

Definition at line 416 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 321 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 418 of file io_fops.h.

◆ crw_fid [1/2]

struct m0_fid crw_fid

File identifier of read/write request.

Definition at line 385 of file io_fops.h.

◆ crw_fid [2/2]

struct m0_fid crw_fid

File identifier of read/write request.

Definition at line 288 of file io_fops.h.

◆ crw_flags [1/2]

uint64_t crw_flags

Miscellaneous flags.

Definition at line 316 of file io_fops.h.

◆ crw_flags [2/2]

uint64_t crw_flags

Miscellaneous flags.

Definition at line 413 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 382 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 285 of file io_fops.h.

◆ crw_index [1/2]

uint32_t crw_index

cob index in the pool verion.

Definition at line 291 of file io_fops.h.

◆ crw_index [2/2]

uint32_t crw_index

cob index in the pool verion.

Definition at line 388 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 314 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 411 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 297 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 394 of file io_fops.h.

◆ crw_pver [1/2]

struct m0_fid crw_pver

Pool version for read/write request.

Definition at line 294 of file io_fops.h.

◆ crw_pver [2/2]

struct m0_fid crw_pver

Pool version for read/write request.

Definition at line 391 of file io_fops.h.

◆ cs_common [1/2]

struct m0_fop_cob_common cs_common

Definition at line 280 of file io_fops.h.

◆ cs_common [2/2]

struct m0_fop_cob_common cs_common

Definition at line 551 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 282 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 560 of file io_fops.h.

◆ csr_rc [1/2]

int32_t csr_rc

Definition at line 280 of file io_fops.h.

◆ csr_rc [2/2]

int32_t csr_rc

Definition at line 558 of file io_fops.h.

◆ ct_common [1/2]

struct m0_fop_cob_common ct_common

Definition at line 504 of file io_fops.h.

◆ ct_common [2/2]

struct m0_fop_cob_common ct_common

Definition at line 280 of file io_fops.h.

◆ ct_io_ivec [1/2]

struct m0_io_indexvec ct_io_ivec

Definition at line 285 of file io_fops.h.

◆ ct_io_ivec [2/2]

struct m0_io_indexvec ct_io_ivec

Definition at line 509 of file io_fops.h.

◆ ct_size [1/2]

uint64_t ct_size

Definition at line 283 of file io_fops.h.

◆ ct_size [2/2]

uint64_t ct_size

Definition at line 507 of file io_fops.h.

◆ id_descs [1/2]

struct m0_net_buf_desc_data* id_descs

Definition at line 281 of file io_fops.h.

◆ id_descs [2/2]

struct m0_net_buf_desc_data* id_descs

Definition at line 313 of file io_fops.h.

◆ id_nr [1/2]

uint32_t id_nr

Definition at line 280 of file io_fops.h.

◆ id_nr [2/2]

uint32_t id_nr

Definition at line 312 of file io_fops.h.

◆ if_bulk_inited

int if_bulk_inited

Definition at line 175 of file io_fops.h.

◆ if_fop

struct m0_fop if_fop

Inline fop for a generic IO fop.

Definition at line 174 of file io_fops.h.

◆ if_magic

uint64_t if_magic

Magic constant for IO fop.

Definition at line 179 of file io_fops.h.

◆ if_nbd [1/2]

struct m0_net_buf_desc if_nbd

Definition at line 281 of file io_fops.h.

◆ if_nbd [2/2]

struct m0_net_buf_desc if_nbd

Definition at line 451 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 177 of file io_fops.h.

◆ if_st [1/2]

uint64_t if_st

Definition at line 280 of file io_fops.h.

◆ if_st [2/2]

uint64_t if_st

Definition at line 450 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 296 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 336 of file io_fops.h.

◆ rwr_count [1/2]

uint64_t rwr_count

Number of bytes read or written.

Definition at line 284 of file io_fops.h.

◆ rwr_count [2/2]

uint64_t rwr_count

Number of bytes read or written.

Definition at line 324 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 302 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 342 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 299 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 339 of file io_fops.h.

◆ rwr_rc [1/2]

int32_t rwr_rc

Status code of operation.

Definition at line 281 of file io_fops.h.

◆ rwr_rc [2/2]

int32_t rwr_rc

Status code of operation.

Definition at line 321 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 293 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 333 of file io_fops.h.