Lines Matching refs:bio
70 struct bio *bio; /* bio under assembly */ member
135 struct bio *bio_list; /* singly linked via bi_private */
328 static blk_status_t dio_bio_complete(struct dio *dio, struct bio *bio);
333 static void dio_bio_end_aio(struct bio *bio) in dio_bio_end_aio() argument
335 struct dio *dio = bio->bi_private; in dio_bio_end_aio()
342 dio_bio_complete(dio, bio); in dio_bio_end_aio()
380 static void dio_bio_end_io(struct bio *bio) in dio_bio_end_io() argument
382 struct dio *dio = bio->bi_private; in dio_bio_end_io()
386 bio->bi_private = dio->bio_list; in dio_bio_end_io()
387 dio->bio_list = bio; in dio_bio_end_io()
398 struct bio *bio; in dio_bio_alloc() local
404 bio = bio_alloc(bdev, nr_vecs, dio->opf, GFP_KERNEL); in dio_bio_alloc()
405 bio->bi_iter.bi_sector = first_sector; in dio_bio_alloc()
407 bio->bi_end_io = dio_bio_end_aio; in dio_bio_alloc()
409 bio->bi_end_io = dio_bio_end_io; in dio_bio_alloc()
411 bio_set_flag(bio, BIO_PAGE_PINNED); in dio_bio_alloc()
412 bio->bi_write_hint = file_inode(dio->iocb->ki_filp)->i_write_hint; in dio_bio_alloc()
414 sdio->bio = bio; in dio_bio_alloc()
428 struct bio *bio = sdio->bio; in dio_bio_submit() local
431 bio->bi_private = dio; in dio_bio_submit()
438 bio_set_pages_dirty(bio); in dio_bio_submit()
440 dio->bio_disk = bio->bi_bdev->bd_disk; in dio_bio_submit()
442 submit_bio(bio); in dio_bio_submit()
444 sdio->bio = NULL; in dio_bio_submit()
466 static struct bio *dio_await_one(struct dio *dio) in dio_await_one()
469 struct bio *bio = NULL; in dio_await_one() local
489 bio = dio->bio_list; in dio_await_one()
490 dio->bio_list = bio->bi_private; in dio_await_one()
493 return bio; in dio_await_one()
499 static blk_status_t dio_bio_complete(struct dio *dio, struct bio *bio) in dio_bio_complete() argument
501 blk_status_t err = bio->bi_status; in dio_bio_complete()
506 if (err == BLK_STS_AGAIN && (bio->bi_opf & REQ_NOWAIT)) in dio_bio_complete()
513 bio_check_pages_dirty(bio); /* transfers ownership */ in dio_bio_complete()
515 bio_release_pages(bio, should_dirty); in dio_bio_complete()
516 bio_put(bio); in dio_bio_complete()
530 struct bio *bio; in dio_await_completion() local
532 bio = dio_await_one(dio); in dio_await_completion()
533 if (bio) in dio_await_completion()
534 dio_bio_complete(dio, bio); in dio_await_completion()
535 } while (bio); in dio_await_completion()
552 struct bio *bio; in dio_bio_reap() local
556 bio = dio->bio_list; in dio_bio_reap()
557 dio->bio_list = bio->bi_private; in dio_bio_reap()
559 ret2 = blk_status_to_errno(dio_bio_complete(dio, bio)); in dio_bio_reap()
692 ret = bio_add_page(sdio->bio, sdio->cur_page, in dio_bio_add_page()
725 if (sdio->bio) { in dio_send_cur_page()
728 sdio->bio->bi_iter.bi_size; in dio_send_cur_page()
749 if (sdio->bio == NULL) { in dio_send_cur_page()
835 if (sdio->bio) in submit_page_section()
1269 if (sdio.bio) in __blockdev_direct_IO()