Lines Matching refs:bio

62 	struct bio *bio;		/* bio under assembly */  member
125 struct bio *bio_list; /* singly linked via bi_private */
283 static int dio_bio_complete(struct dio *dio, struct bio *bio);
288 static void dio_bio_end_aio(struct bio *bio, int error) in dio_bio_end_aio() argument
290 struct dio *dio = bio->bi_private; in dio_bio_end_aio()
295 dio_bio_complete(dio, bio); in dio_bio_end_aio()
321 static void dio_bio_end_io(struct bio *bio, int error) in dio_bio_end_io() argument
323 struct dio *dio = bio->bi_private; in dio_bio_end_io()
327 bio->bi_private = dio->bio_list; in dio_bio_end_io()
328 dio->bio_list = bio; in dio_bio_end_io()
343 void dio_end_io(struct bio *bio, int error) in dio_end_io() argument
345 struct dio *dio = bio->bi_private; in dio_end_io()
348 dio_bio_end_aio(bio, error); in dio_end_io()
350 dio_bio_end_io(bio, error); in dio_end_io()
359 struct bio *bio; in dio_bio_alloc() local
365 bio = bio_alloc(GFP_KERNEL, nr_vecs); in dio_bio_alloc()
367 bio->bi_bdev = bdev; in dio_bio_alloc()
368 bio->bi_iter.bi_sector = first_sector; in dio_bio_alloc()
370 bio->bi_end_io = dio_bio_end_aio; in dio_bio_alloc()
372 bio->bi_end_io = dio_bio_end_io; in dio_bio_alloc()
374 sdio->bio = bio; in dio_bio_alloc()
387 struct bio *bio = sdio->bio; in dio_bio_submit() local
390 bio->bi_private = dio; in dio_bio_submit()
397 bio_set_pages_dirty(bio); in dio_bio_submit()
400 sdio->submit_io(dio->rw, bio, dio->inode, in dio_bio_submit()
403 submit_bio(dio->rw, bio); in dio_bio_submit()
405 sdio->bio = NULL; in dio_bio_submit()
425 static struct bio *dio_await_one(struct dio *dio) in dio_await_one()
428 struct bio *bio = NULL; in dio_await_one() local
448 bio = dio->bio_list; in dio_await_one()
449 dio->bio_list = bio->bi_private; in dio_await_one()
452 return bio; in dio_await_one()
458 static int dio_bio_complete(struct dio *dio, struct bio *bio) in dio_bio_complete() argument
460 const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); in dio_bio_complete()
468 bio_check_pages_dirty(bio); /* transfers ownership */ in dio_bio_complete()
470 bio_for_each_segment_all(bvec, bio, i) { in dio_bio_complete()
477 bio_put(bio); in dio_bio_complete()
491 struct bio *bio; in dio_await_completion() local
493 bio = dio_await_one(dio); in dio_await_completion()
494 if (bio) in dio_await_completion()
495 dio_bio_complete(dio, bio); in dio_await_completion()
496 } while (bio); in dio_await_completion()
513 struct bio *bio; in dio_bio_reap() local
517 bio = dio->bio_list; in dio_bio_reap()
518 dio->bio_list = bio->bi_private; in dio_bio_reap()
520 ret2 = dio_bio_complete(dio, bio); in dio_bio_reap()
675 ret = bio_add_page(sdio->bio, sdio->cur_page, in dio_bio_add_page()
708 if (sdio->bio) { in dio_send_cur_page()
711 sdio->bio->bi_iter.bi_size; in dio_send_cur_page()
732 if (sdio->bio == NULL) { in dio_send_cur_page()
1270 if (sdio.bio) in do_blockdev_direct_IO()