Motr  M0
m0_op_io_ops Struct Reference

#include <pg.h>

Collaboration diagram for m0_op_io_ops:
Collaboration graph

Data Fields

int(* iro_iomaps_prepare )(struct m0_op_io *ioo)
 
void(* iro_iomaps_destroy )(struct m0_op_io *ioo)
 
int(* iro_application_data_copy )(struct m0_op_io *ioo, enum copy_direction dir, enum page_attr filter)
 
int(* iro_parity_recalc )(struct m0_op_io *ioo)
 
int(* iro_parity_verify )(struct m0_op_io *ioo)
 
void(* iro_iosm_handle_launch )(struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
void(* iro_iosm_handle_executed )(struct m0_sm_group *grp, struct m0_sm_ast *ast)
 
int(* iro_dgmode_read )(struct m0_op_io *ioo, bool rmw)
 
int(* iro_dgmode_recover )(struct m0_op_io *ioo)
 
int(* iro_dgmode_write )(struct m0_op_io *ioo, bool rmw)
 
int(* iro_replica_rectify )(struct m0_op_io *ioo, bool rmw)
 

Detailed Description

Operation vector for struct io_request.

Definition at line 560 of file pg.h.

Field Documentation

◆ iro_application_data_copy

int(* iro_application_data_copy) (struct m0_op_io *ioo, enum copy_direction dir, enum page_attr filter)

Copies data from/to application buffers according to given direction and page filter.

Parameters
dirDirection of copy.
filterOnly copy pages that match the filter.
Precondition
io_request_invariant(req).

Definition at line 583 of file pg.h.

◆ iro_dgmode_read

int(* iro_dgmode_read) (struct m0_op_io *ioo, bool rmw)

Handles degraded mode read IO. Issues read IO for pages in all parity groups which need to be read in order to recover lost data.

Parameters
rmwTells whether current io_request is rmw or not.
Precondition
req->ir_state == IRS_READ_COMPLETE.
io_request_invariant(req).
Postcondition
req->ir_state == IRS_DEGRADED_READING.

Definition at line 634 of file pg.h.

◆ iro_dgmode_recover

int(* iro_dgmode_recover) (struct m0_op_io *ioo)

Recovers lost unit/s by calculating parity over remaining units.

Precondition
req->ir_state == IRS_READ_COMPLETE && io_request_invariant(req).
Postcondition
io_request_invariant(req).

Definition at line 643 of file pg.h.

◆ iro_dgmode_write

int(* iro_dgmode_write) (struct m0_op_io *ioo, bool rmw)

Handles degraded mode write IO. Finds out whether SNS repair has finished on given global fid or is still due. This is done in context of a distributed lock on the given global file.

Parameters
rmwTells whether current io request is rmw or not.
Precondition
req->ir_state == IRS_WRITE_COMPLETE.
io_request_invariant(req).
Postcondition
req->ir_state == IRS_DEGRADED_READING.

Definition at line 655 of file pg.h.

◆ iro_iomaps_destroy

void(* iro_iomaps_destroy) (struct m0_op_io *ioo)

Finalizes and deallocates pargrp_iomap structures.

Precondition
req != NULL && req->ir_iomaps != NULL.
Postcondition
req->ir_iomaps == NULL && req->ir_iomap_nr == 0.

Definition at line 574 of file pg.h.

◆ iro_iomaps_prepare

int(* iro_iomaps_prepare) (struct m0_op_io *ioo)

Prepares pargrp_iomap structures for the parity groups spanned by io_request::ir_ivec.

Precondition
req->ir_iomaps == NULL && req->ir_iomap_nr == 0.
Postcondition
req->ir_iomaps != NULL && req->ir_iomap_nr > 0.

Definition at line 567 of file pg.h.

◆ iro_iosm_handle_executed

void(* iro_iosm_handle_executed) (struct m0_sm_group *grp, struct m0_sm_ast *ast)

Handles the state transition, status of request and the intermediate copy_{from/to}_user for the initial reply of a request.

Precondition
io_request_invariant(req).

Definition at line 622 of file pg.h.

◆ iro_iosm_handle_launch

void(* iro_iosm_handle_launch) (struct m0_sm_group *grp, struct m0_sm_ast *ast)

Handles the state transition, status of request and the intermediate copy_{from/to}_user for the launch of the initial request, and setup of subsequent callbacks.

Precondition
io_request_invariant(req).

Definition at line 613 of file pg.h.

◆ iro_parity_recalc

int(* iro_parity_recalc) (struct m0_op_io *ioo)

Recalculates parity for all pargrp_iomap structures in given io_request. Basically, invokes parity_recalc() routine for every pargrp_iomap in io_request::ir_iomaps.

Precondition
io_request_invariant(req) && req->ir_type == IRT_WRITE.
Postcondition
io_request_invariant(req).

Definition at line 595 of file pg.h.

◆ iro_parity_verify

int(* iro_parity_verify) (struct m0_op_io *ioo)

Verifies parity for all pargrp_iomap structures in given io_request in 'parity verify' mode and for READ request. Basically, invokes parity_verify() routine for every pargrp_iomap in io_request::ir_iomaps.

Precondition
io_request_invariant(req) && req->ir_type == IRT_READ.
Postcondition
io_request_invariant(req).

Definition at line 605 of file pg.h.

◆ iro_replica_rectify

int(* iro_replica_rectify) (struct m0_op_io *ioo, bool rmw)

This method fixes the affected replicas from the corrupted parity groups.

Definition at line 661 of file pg.h.


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