Lines Matching refs:bio
90 static void store_io_and_region_in_bio(struct bio *bio, struct io *io, in store_io_and_region_in_bio() argument
98 bio->bi_private = (void *)((unsigned long)io | region); in store_io_and_region_in_bio()
101 static void retrieve_io_and_region_from_bio(struct bio *bio, struct io **io, in retrieve_io_and_region_from_bio() argument
104 unsigned long val = (unsigned long)bio->bi_private; in retrieve_io_and_region_from_bio()
137 static void endio(struct bio *bio, int error) in endio() argument
142 if (error && bio_data_dir(bio) == READ) in endio()
143 zero_fill_bio(bio); in endio()
148 retrieve_io_and_region_from_bio(bio, &io, ®ion); in endio()
150 bio_put(bio); in endio()
219 static void bio_dp_init(struct dpages *dp, struct bio *bio) in bio_dp_init() argument
223 dp->context_ptr = __bvec_iter_bvec(bio->bi_io_vec, bio->bi_iter); in bio_dp_init()
224 dp->context_u = bio->bi_iter.bi_bvec_done; in bio_dp_init()
283 struct bio *bio; in do_region() local
320 bio = bio_alloc_bioset(GFP_NOIO, num_bvecs, io->client->bios); in do_region()
321 bio->bi_iter.bi_sector = where->sector + (where->count - remaining); in do_region()
322 bio->bi_bdev = where->bdev; in do_region()
323 bio->bi_end_io = endio; in do_region()
324 store_io_and_region_in_bio(bio, io, region); in do_region()
328 bio->bi_iter.bi_size = num_sectors << SECTOR_SHIFT; in do_region()
335 bio_add_page(bio, page, logical_block_size, offset); in do_region()
337 bio->bi_iter.bi_size = num_sectors << SECTOR_SHIFT; in do_region()
348 if (!bio_add_page(bio, page, len, offset)) in do_region()
357 submit_bio(rw, bio); in do_region()
477 bio_dp_init(dp, io_req->mem.ptr.bio); in dp_init()