Motr  M0
nw_xfer_ops Struct Reference

#include <file_internal.h>

Collaboration diagram for nw_xfer_ops:
Collaboration graph

Data Fields

int(* nxo_distribute )(struct nw_xfer_request *xfer)
 
void(* nxo_complete )(struct nw_xfer_request *xfer, bool rmw)
 
int(* nxo_dispatch )(struct nw_xfer_request *xfer)
 
int(* nxo_tioreq_map )(struct nw_xfer_request *xfer, const struct m0_pdclust_src_addr *src, struct m0_pdclust_tgt_addr *tgt, struct target_ioreq **tio)
 

Detailed Description

Operation vector for struct nw_xfer_request.

Definition at line 1143 of file file_internal.h.

Field Documentation

◆ nxo_complete

void(* nxo_complete)(struct nw_xfer_request *xfer, bool rmw)

Does post processing of a network transfer request. Primarily all IO fops submitted by this network transfer request are finalized so that new fops can be created for same request.

Parameters
rmwBoolean telling if current IO request is rmw or not.
Precondition
nw_xfer_request_invariant(xfer).
Postcondition
xfer->nxr_state == NXS_COMPLETE.

Definition at line 1160 of file file_internal.h.

◆ nxo_dispatch

int(* nxo_dispatch)(struct nw_xfer_request *xfer)

Dispatches the IO fops created by all member target_ioreq objects and sends them to server for processing. The whole process is done in an asynchronous manner and does not block the thread during processing.

Precondition
nw_xfer_request_invariant(xfer).
Postcondition
xfer->nxr_state == NXS_INFLIGHT.

Definition at line 1170 of file file_internal.h.

◆ nxo_distribute

int(* nxo_distribute)(struct nw_xfer_request *xfer)

Distributes file data between target_ioreq objects as needed and populates target_ioreq::ir_ivec and target_ioreq::ti_bufvec.

Precondition
nw_xfer_request_invariant(xfer).
Postcondition
!tioreqs_list_is_empty(xfer->nxr_tioreqs).

Definition at line 1150 of file file_internal.h.

◆ nxo_tioreq_map

int(* nxo_tioreq_map)(struct nw_xfer_request *xfer, const struct m0_pdclust_src_addr *src, struct m0_pdclust_tgt_addr *tgt, struct target_ioreq **tio)

Locates or creates a target_iroeq object which maps to the given source unit address.

Parameters
srcunit address in the parity group.
tgt[out]unit address in target devices.
tio[out]target_ioreq object.
Precondition
nw_xfer_request_invariant(xfer).

Definition at line 1181 of file file_internal.h.


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