table of contents
other versions
BLK_RQ_PREP_CLONE(9) | Block Devices | BLK_RQ_PREP_CLONE(9) |
NAME¶
blk_rq_prep_clone - Helper function to setup clone requestSYNOPSIS¶
int blk_rq_prep_clone(struct request * rq, struct request * rq_src, struct bio_set * bs, gfp_t gfp_mask, int (*bio_ctr) (struct bio *, struct bio *, void *), void * data);
ARGUMENTS¶
struct request * rqthe request to be setup
struct request * rq_src
original request to be cloned
struct bio_set * bs
bio_set that bios for clone are allocated from
gfp_t gfp_mask
memory allocation mask for bio
int (*)(struct bio *, struct bio *, void *) bio_ctr
setup function to be called for each clone bio. Returns
0 for success, non 0 for failure.
void * data
private data to be passed to bio_ctr
DESCRIPTION¶
Clones bios in rq_src to rq, and copies attributes of rq_src to rq. The actual data parts of rq_src (e.g. ->cmd, ->sense) are not copied, and copying such parts is the caller's responsibility. Also, pages which the original bios are pointing to are not copied and the cloned bios just point same pages. So cloned bios must be completed before original bios, which means the caller must complete rq before rq_src.COPYRIGHT¶
July 2017 | Kernel Hackers Manual 4.11 |