Lines Matching refs:bio
13 * use bio_add_page() to build bio's just the right size
21 #include <linux/bio.h>
46 static void mpage_read_end_io(struct bio *bio)
49 int err = blk_status_to_errno(bio->bi_status);
51 bio_for_each_folio_all(fi, bio) {
59 bio_put(bio);
62 static void mpage_write_end_io(struct bio *bio)
65 int err = blk_status_to_errno(bio->bi_status);
67 bio_for_each_folio_all(fi, bio) {
75 bio_put(bio);
78 static struct bio *mpage_bio_submit_read(struct bio *bio)
80 bio->bi_end_io = mpage_read_end_io;
81 guard_bio_eod(bio);
82 submit_bio(bio);
86 static struct bio *mpage_bio_submit_write(struct bio *bio)
88 bio->bi_end_io = mpage_write_end_io;
89 guard_bio_eod(bio);
90 submit_bio(bio);
140 struct bio *bio;
159 static struct bio *do_mpage_readpage(struct mpage_readpage_args *args)
293 if (args->bio && (args->last_block_in_bio != blocks[0] - 1))
294 args->bio = mpage_bio_submit_read(args->bio);
297 if (args->bio == NULL) {
298 args->bio = bio_alloc(bdev, bio_max_segs(args->nr_pages), opf,
300 if (args->bio == NULL)
302 args->bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9);
306 if (!bio_add_folio(args->bio, folio, length, 0)) {
307 args->bio = mpage_bio_submit_read(args->bio);
315 args->bio = mpage_bio_submit_read(args->bio);
319 return args->bio;
322 if (args->bio)
323 args->bio = mpage_bio_submit_read(args->bio);
382 args.bio = do_mpage_readpage(&args);
384 if (args.bio)
385 mpage_bio_submit_read(args.bio);
400 args.bio = do_mpage_readpage(&args);
401 if (args.bio)
402 mpage_bio_submit_read(args.bio);
425 struct bio *bio;
473 struct bio *bio = mpd->bio;
605 if (bio && mpd->last_block_in_bio != blocks[0] - 1)
606 bio = mpage_bio_submit_write(bio);
609 if (bio == NULL) {
610 bio = bio_alloc(bdev, BIO_MAX_VECS,
613 bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9);
614 wbc_init_bio(wbc, bio);
624 if (!bio_add_folio(bio, folio, length, 0)) {
625 bio = mpage_bio_submit_write(bio);
635 bio = mpage_bio_submit_write(bio);
646 if (bio)
647 bio = mpage_bio_submit_write(bio);
655 mpd->bio = bio;
680 if (mpd.bio)
681 mpage_bio_submit_write(mpd.bio);