Motr  M0
io_request Struct Reference

#include <file_internal.h>

Collaboration diagram for io_request:
Collaboration graph

Data Fields

uint64_t ir_magic
 
int ir_rc
 
m0_bcount_t ir_copied_nr
 
struct fileir_file
 
struct m0_indexvec_varr ir_ivv
 
struct pargrp_iomap ** ir_iomaps
 
uint64_t ir_iomap_nr
 
const struct iovec * ir_iovec
 
struct m0_sm ir_sm
 
enum io_req_type ir_type
 
bool ir_direct_io
 
const struct io_request_opsir_ops
 
struct nw_xfer_request ir_nwxfer
 
struct m0_rm_incoming ir_in
 
enum sns_repair_state ir_sns_state
 
uint32_t ir_dgmap_nr
 
uint64_t * ir_failed_session
 

Detailed Description

io_request - Represents an IO request call. It contains the IO extent, struct nw_xfer_request and the state of IO request. This structure is primarily used to track progress of an IO request. The state transitions of io_request structure are handled by m0_sm structure and its support for chained state transitions.

Definition at line 1368 of file file_internal.h.

Field Documentation

◆ ir_copied_nr

m0_bcount_t ir_copied_nr

Number of data bytes copied to/from user space.

Definition at line 1375 of file file_internal.h.

◆ ir_dgmap_nr

uint32_t ir_dgmap_nr

Total number of parity-maps associated with this request that are in degraded mode.

Definition at line 1435 of file file_internal.h.

◆ ir_direct_io

bool ir_direct_io

Definition at line 1412 of file file_internal.h.

◆ ir_failed_session

uint64_t* ir_failed_session

An array holding ids of failed sessions. The vacant entries are marked as ~(uint64_t)0. XXX This is a temporary solution. Sould be removed once MOTR-899 lands into dev.

Definition at line 1443 of file file_internal.h.

◆ ir_file

struct file* ir_file

struct file* can point to m0t1fs inode and hence its associated m0_fid structure.

Definition at line 1381 of file file_internal.h.

◆ ir_in

struct m0_rm_incoming ir_in

A request to borrow resource from creditor

Definition at line 1419 of file file_internal.h.

◆ ir_iomap_nr

uint64_t ir_iomap_nr

Number of pargrp_iomap structures.

Definition at line 1398 of file file_internal.h.

◆ ir_iomaps

struct pargrp_iomap** ir_iomaps

Array of struct pargrp_iomap pointers. Each pargrp_iomap structure describes the part of parity group spanned by segments from ::ir_ivec.

Definition at line 1395 of file file_internal.h.

◆ ir_iovec

const struct iovec* ir_iovec

Array of iovec structures containing user-space buffers. It is used as is since using a new structure would require conversion.

Definition at line 1405 of file file_internal.h.

◆ ir_ivv

struct m0_indexvec_varr ir_ivv

Index vector describing file extents and their lengths. This vector is in sync with the array of iovec structures below.

Definition at line 1388 of file file_internal.h.

◆ ir_magic

uint64_t ir_magic

Holds M0_T1FS_IOREQ_MAGIC

Definition at line 1370 of file file_internal.h.

◆ ir_nwxfer

struct nw_xfer_request ir_nwxfer

Definition at line 1416 of file file_internal.h.

◆ ir_ops

const struct io_request_ops* ir_ops

Definition at line 1414 of file file_internal.h.

◆ ir_rc

int ir_rc

Definition at line 1372 of file file_internal.h.

◆ ir_sm

struct m0_sm ir_sm

Async state machine to handle state transitions and callbacks.

Definition at line 1408 of file file_internal.h.

◆ ir_sns_state

enum sns_repair_state ir_sns_state

State of SNS repair process with respect to file_to_fid(io_request::ir_file). There are only 2 states possible since Motr client IO path involves a file-level distributed lock on global fid.

  • either SNS repair is still due on associated global fid.
  • or SNS repair has completed on associated global fid.

Definition at line 1429 of file file_internal.h.

◆ ir_type

enum io_req_type ir_type

Definition at line 1410 of file file_internal.h.


The documentation for this struct was generated from the following file: