The bio structure contains everything that a block driver needs to carry out the request without reference to the user-space process that caused that request to be initiated.
The bio structure, which is defined in <linux/bio.h>, contains a number of fields that
may be of use to driver.
The core of a bio, however, is an array called bi_io_vec, which is made up of the fol-
lowing structure:
struct bio_vec {
struct page
unsigned int
unsigned int
};