Lines Matching refs:bio

45 static void mpage_end_io(struct bio *bio)  in mpage_end_io()  argument
50 bio_for_each_segment_all(bv, bio, i) { in mpage_end_io()
52 page_endio(page, bio_data_dir(bio), bio->bi_error); in mpage_end_io()
55 bio_put(bio); in mpage_end_io()
58 static struct bio *mpage_bio_submit(int rw, struct bio *bio) in mpage_bio_submit() argument
60 bio->bi_end_io = mpage_end_io; in mpage_bio_submit()
61 guard_bio_eod(rw, bio); in mpage_bio_submit()
62 submit_bio(rw, bio); in mpage_bio_submit()
66 static struct bio *
71 struct bio *bio; in mpage_alloc() local
73 bio = bio_alloc(gfp_flags, nr_vecs); in mpage_alloc()
75 if (bio == NULL && (current->flags & PF_MEMALLOC)) { in mpage_alloc()
76 while (!bio && (nr_vecs /= 2)) in mpage_alloc()
77 bio = bio_alloc(gfp_flags, nr_vecs); in mpage_alloc()
80 if (bio) { in mpage_alloc()
81 bio->bi_bdev = bdev; in mpage_alloc()
82 bio->bi_iter.bi_sector = first_sector; in mpage_alloc()
84 return bio; in mpage_alloc()
139 static struct bio *
140 do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages, in do_mpage_readpage() argument
270 if (bio && (*last_block_in_bio != blocks[0] - 1)) in do_mpage_readpage()
271 bio = mpage_bio_submit(READ, bio); in do_mpage_readpage()
274 if (bio == NULL) { in do_mpage_readpage()
280 bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9), in do_mpage_readpage()
282 if (bio == NULL) in do_mpage_readpage()
287 if (bio_add_page(bio, page, length, 0) < length) { in do_mpage_readpage()
288 bio = mpage_bio_submit(READ, bio); in do_mpage_readpage()
296 bio = mpage_bio_submit(READ, bio); in do_mpage_readpage()
300 return bio; in do_mpage_readpage()
303 if (bio) in do_mpage_readpage()
304 bio = mpage_bio_submit(READ, bio); in do_mpage_readpage()
359 struct bio *bio = NULL; in mpage_readpages() local
376 bio = do_mpage_readpage(bio, page, in mpage_readpages()
385 if (bio) in mpage_readpages()
386 mpage_bio_submit(READ, bio); in mpage_readpages()
396 struct bio *bio = NULL; in mpage_readpage() local
404 bio = do_mpage_readpage(bio, page, 1, &last_block_in_bio, in mpage_readpage()
406 if (bio) in mpage_readpage()
407 mpage_bio_submit(READ, bio); in mpage_readpage()
430 struct bio *bio; member
469 struct bio *bio = mpd->bio; in __mpage_writepage() local
596 if (bio && mpd->last_block_in_bio != blocks[0] - 1) in __mpage_writepage()
597 bio = mpage_bio_submit(wr, bio); in __mpage_writepage()
600 if (bio == NULL) { in __mpage_writepage()
608 bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9), in __mpage_writepage()
610 if (bio == NULL) in __mpage_writepage()
613 wbc_init_bio(wbc, bio); in __mpage_writepage()
623 if (bio_add_page(bio, page, length, 0) < length) { in __mpage_writepage()
624 bio = mpage_bio_submit(wr, bio); in __mpage_writepage()
634 bio = mpage_bio_submit(wr, bio); in __mpage_writepage()
645 if (bio) in __mpage_writepage()
646 bio = mpage_bio_submit(wr, bio); in __mpage_writepage()
659 mpd->bio = bio; in __mpage_writepage()
695 .bio = NULL, in mpage_writepages()
702 if (mpd.bio) { in mpage_writepages()
705 mpage_bio_submit(wr, mpd.bio); in mpage_writepages()
717 .bio = NULL, in mpage_writepage()
723 if (mpd.bio) { in mpage_writepage()
726 mpage_bio_submit(wr, mpd.bio); in mpage_writepage()