Lines Matching refs:bio
46 static void mpage_read_end_io(struct bio *bio) in mpage_read_end_io() argument
49 int err = blk_status_to_errno(bio->bi_status); in mpage_read_end_io()
51 bio_for_each_folio_all(fi, bio) in mpage_read_end_io()
54 bio_put(bio); in mpage_read_end_io()
57 static void mpage_write_end_io(struct bio *bio) in mpage_write_end_io() argument
60 int err = blk_status_to_errno(bio->bi_status); in mpage_write_end_io()
62 bio_for_each_folio_all(fi, bio) { in mpage_write_end_io()
68 bio_put(bio); in mpage_write_end_io()
71 static struct bio *mpage_bio_submit_read(struct bio *bio) in mpage_bio_submit_read() argument
73 bio->bi_end_io = mpage_read_end_io; in mpage_bio_submit_read()
74 guard_bio_eod(bio); in mpage_bio_submit_read()
75 submit_bio(bio); in mpage_bio_submit_read()
79 static struct bio *mpage_bio_submit_write(struct bio *bio) in mpage_bio_submit_write() argument
81 bio->bi_end_io = mpage_write_end_io; in mpage_bio_submit_write()
82 guard_bio_eod(bio); in mpage_bio_submit_write()
83 submit_bio(bio); in mpage_bio_submit_write()
132 struct bio *bio; member
151 static struct bio *do_mpage_readpage(struct mpage_readpage_args *args) in do_mpage_readpage()
282 if (args->bio && (args->last_block_in_bio != first_block - 1)) in do_mpage_readpage()
283 args->bio = mpage_bio_submit_read(args->bio); in do_mpage_readpage()
286 if (args->bio == NULL) { in do_mpage_readpage()
287 args->bio = bio_alloc(bdev, bio_max_segs(args->nr_pages), opf, in do_mpage_readpage()
289 if (args->bio == NULL) in do_mpage_readpage()
291 args->bio->bi_iter.bi_sector = first_block << (blkbits - 9); in do_mpage_readpage()
295 if (!bio_add_folio(args->bio, folio, length, 0)) { in do_mpage_readpage()
296 args->bio = mpage_bio_submit_read(args->bio); in do_mpage_readpage()
304 args->bio = mpage_bio_submit_read(args->bio); in do_mpage_readpage()
308 return args->bio; in do_mpage_readpage()
311 if (args->bio) in do_mpage_readpage()
312 args->bio = mpage_bio_submit_read(args->bio); in do_mpage_readpage()
371 args.bio = do_mpage_readpage(&args); in mpage_readahead()
373 if (args.bio) in mpage_readahead()
374 mpage_bio_submit_read(args.bio); in mpage_readahead()
389 args.bio = do_mpage_readpage(&args); in mpage_read_folio()
390 if (args.bio) in mpage_read_folio()
391 mpage_bio_submit_read(args.bio); in mpage_read_folio()
414 struct bio *bio; member
451 struct bio *bio = mpd->bio; in mpage_write_folio() local
587 if (bio && mpd->last_block_in_bio != first_block - 1) in mpage_write_folio()
588 bio = mpage_bio_submit_write(bio); in mpage_write_folio()
591 if (bio == NULL) { in mpage_write_folio()
592 bio = bio_alloc(bdev, BIO_MAX_VECS, in mpage_write_folio()
595 bio->bi_iter.bi_sector = first_block << (blkbits - 9); in mpage_write_folio()
596 wbc_init_bio(wbc, bio); in mpage_write_folio()
597 bio->bi_write_hint = inode->i_write_hint; in mpage_write_folio()
607 if (!bio_add_folio(bio, folio, length, 0)) { in mpage_write_folio()
608 bio = mpage_bio_submit_write(bio); in mpage_write_folio()
618 bio = mpage_bio_submit_write(bio); in mpage_write_folio()
629 if (bio) in mpage_write_folio()
630 bio = mpage_bio_submit_write(bio); in mpage_write_folio()
638 mpd->bio = bio; in mpage_write_folio()
665 if (mpd.bio) in mpage_writepages()
666 mpage_bio_submit_write(mpd.bio); in mpage_writepages()