Motr
M0
|
#include <file_internal.h>
Operations vector for struct pargrp_iomap.
Definition at line 1561 of file file_internal.h.
int(* pi_data_replicate) (struct pargrp_iomap *map) |
int(* pi_databuf_alloc) (struct pargrp_iomap *map, uint32_t row, uint32_t col, struct m0_bufvec_cursor *buf_cursor) |
int(* pi_dgmode_postprocess)(struct pargrp_iomap *map) |
Marks all but the failed pages with flag PA_DGMODE_READ in data matrix and parity matrix.
Definition at line 1673 of file file_internal.h.
int(* pi_dgmode_process)(struct pargrp_iomap *map, struct target_ioreq *tio, m0_bindex_t *index, uint32_t count) |
Does necessary processing for degraded mode read IO. Marks pages belonging to failed targets with a flag PA_READ_FAILED.
index | Array of target indices that fall in given parity group. These are converted to global file offsets. |
count | Number of segments provided. |
Definition at line 1664 of file file_internal.h.
int(* pi_dgmode_recover)(struct pargrp_iomap *map) |
Recovers lost unit/s by using data recover APIs from underlying parity algorithm.
Definition at line 1681 of file file_internal.h.
uint64_t(* pi_fullpages_find)(struct pargrp_iomap *map) |
Finds out the number of pages completely spanned by incoming io vector. Used only in case of read-modify-write IO. This is needed in order to decide the type of read approach {read_old, read_rest} for the given parity group.
Definition at line 1608 of file file_internal.h.
int(* pi_parity_recalc)(struct pargrp_iomap *map) |
Recalculates parity for given pargrp_iomap.
Definition at line 1637 of file file_internal.h.
int(* pi_parity_replica_verify) (struct pargrp_iomap *map) |
int(* pi_parity_verify)(struct pargrp_iomap *map) |
verify parity for given pargrp_iomap for read operation and in 'parity verify' mode, after data and parity units are all already read from ioserive.
Definition at line 1645 of file file_internal.h.
int(* pi_paritybufs_alloc)(struct pargrp_iomap *map) |
Allocates data_buf structures for pargrp_iomap::pi_paritybufs and populate db_flags accordingly.
Definition at line 1653 of file file_internal.h.
int(* pi_populate)(struct pargrp_iomap *iomap, struct m0_ivec_cursor *cursor, struct m0_bufvec_cursor *buf_cursor) |
Populates pargrp_iomap::pi_ivec by deciding whether to follow read-old approach or read-rest approach. pargrp_iomap::pi_rtype will be set to PIR_READOLD or PIR_READREST accordingly.
cursor | Source index vector cursor from which pargrp_iomap::pi_ivec will be populated. Typically, this is io_request::ir_ivec. |
Populates pargrp_iomap::pi_ivec by deciding whether to follow read-old approach or read-rest approach. pargrp_iomap::pi_rtype will be set to PIR_READOLD or PIR_READREST accordingly.
cursor | Source index vector cursor from which pargrp_iomap::pi_ivec will be populated. Typically, this is m0_op_io::ioo_ext. |
Definition at line 1576 of file file_internal.h.
int(* pi_readold_auxbuf_alloc)(struct pargrp_iomap *map) |
Process the data buffers in pargrp_iomap::pi_databufs when read-old approach is chosen. Auxiliary buffers are allocated here.
Processes the data buffers in pargrp_iomap::pi_databufs when read-old approach is chosen. Auxiliary buffers are allocated here.
Definition at line 1631 of file file_internal.h.
int(* pi_readrest)(struct pargrp_iomap *iomap) |
Changes pargrp_iomap::pi_ivec to suit read-rest approach for an RMW IO request.
Definition at line 1598 of file file_internal.h.
int(* pi_replica_recover) (struct pargrp_iomap *map) |
int(* pi_seg_process)(struct pargrp_iomap *map, uint32_t segid, bool rmw, uint64_t start_buf_index, struct m0_bufvec_cursor *buf_cursor) |
Process segment pointed to by segid in pargrp_iomap::pi_ivec and allocate data_buf structures correspondingly. It also populates data_buf::db_flags for pargrp_iomap::pi_databufs.
segid | Segment id which needs to be processed. Given seg id should point to last segment in pargrp_iomap::pi_ivec when invoked. |
rmw | If given pargrp_iomap structure needs rmw. |
Processes segment pointed to by segid in pargrp_iomap::pi_ivec and allocate data_buf structures correspondingly. It also populates data_buf::db_flags for pargrp_iomap::pi_databufs.
segid | Segment identifier which needs to be processed. Given seg id should point to last segment in pargrp_iomap::pi_ivec when invoked. |
rmw | If given pargrp_iomap structure needs rmw. |
Definition at line 1621 of file file_internal.h.
bool(* pi_spans_seg)(struct pargrp_iomap *iomap, m0_bindex_t index, m0_bcount_t count) |
Returns true if the given segment is spanned by existing segments in pargrp_iomap::pi_ivec.
index | Starting index of incoming segment. |
count | Count of incoming segment. |
Definition at line 1588 of file file_internal.h.