Lines Matching refs:bio
62 struct bio *bio; /* bio under assembly */ member
128 struct bio *bio_list; /* singly linked via bi_private */
286 static int dio_bio_complete(struct dio *dio, struct bio *bio);
291 static void dio_bio_end_aio(struct bio *bio) in dio_bio_end_aio() argument
293 struct dio *dio = bio->bi_private; in dio_bio_end_aio()
298 dio_bio_complete(dio, bio); in dio_bio_end_aio()
324 static void dio_bio_end_io(struct bio *bio) in dio_bio_end_io() argument
326 struct dio *dio = bio->bi_private; in dio_bio_end_io()
330 bio->bi_private = dio->bio_list; in dio_bio_end_io()
331 dio->bio_list = bio; in dio_bio_end_io()
346 void dio_end_io(struct bio *bio, int error) in dio_end_io() argument
348 struct dio *dio = bio->bi_private; in dio_end_io()
351 dio_bio_end_aio(bio); in dio_end_io()
353 dio_bio_end_io(bio); in dio_end_io()
362 struct bio *bio; in dio_bio_alloc() local
368 bio = bio_alloc(GFP_KERNEL, nr_vecs); in dio_bio_alloc()
370 bio->bi_bdev = bdev; in dio_bio_alloc()
371 bio->bi_iter.bi_sector = first_sector; in dio_bio_alloc()
373 bio->bi_end_io = dio_bio_end_aio; in dio_bio_alloc()
375 bio->bi_end_io = dio_bio_end_io; in dio_bio_alloc()
377 sdio->bio = bio; in dio_bio_alloc()
390 struct bio *bio = sdio->bio; in dio_bio_submit() local
393 bio->bi_private = dio; in dio_bio_submit()
400 bio_set_pages_dirty(bio); in dio_bio_submit()
402 dio->bio_bdev = bio->bi_bdev; in dio_bio_submit()
405 sdio->submit_io(dio->rw, bio, dio->inode, in dio_bio_submit()
409 dio->bio_cookie = submit_bio(dio->rw, bio); in dio_bio_submit()
411 sdio->bio = NULL; in dio_bio_submit()
431 static struct bio *dio_await_one(struct dio *dio) in dio_await_one()
434 struct bio *bio = NULL; in dio_await_one() local
455 bio = dio->bio_list; in dio_await_one()
456 dio->bio_list = bio->bi_private; in dio_await_one()
459 return bio; in dio_await_one()
465 static int dio_bio_complete(struct dio *dio, struct bio *bio) in dio_bio_complete() argument
471 if (bio->bi_error) in dio_bio_complete()
475 err = bio->bi_error; in dio_bio_complete()
476 bio_check_pages_dirty(bio); /* transfers ownership */ in dio_bio_complete()
478 bio_for_each_segment_all(bvec, bio, i) { in dio_bio_complete()
486 err = bio->bi_error; in dio_bio_complete()
487 bio_put(bio); in dio_bio_complete()
501 struct bio *bio; in dio_await_completion() local
503 bio = dio_await_one(dio); in dio_await_completion()
504 if (bio) in dio_await_completion()
505 dio_bio_complete(dio, bio); in dio_await_completion()
506 } while (bio); in dio_await_completion()
523 struct bio *bio; in dio_bio_reap() local
527 bio = dio->bio_list; in dio_bio_reap()
528 dio->bio_list = bio->bi_private; in dio_bio_reap()
530 ret2 = dio_bio_complete(dio, bio); in dio_bio_reap()
685 ret = bio_add_page(sdio->bio, sdio->cur_page, in dio_bio_add_page()
718 if (sdio->bio) { in dio_send_cur_page()
721 sdio->bio->bi_iter.bi_size; in dio_send_cur_page()
742 if (sdio->bio == NULL) { in dio_send_cur_page()
1281 if (sdio.bio) in do_blockdev_direct_IO()