• Home
  • Raw
  • Download

Lines Matching refs:bio

55 static void mpage_end_io(struct bio *bio)  in mpage_end_io()  argument
61 (bio_data_dir(bio) == READ)) { in mpage_end_io()
62 struct page *first_page = bio->bi_io_vec[0].bv_page; in mpage_end_io()
67 bio->bi_iter.bi_size); in mpage_end_io()
70 bio_for_each_segment_all(bv, bio, iter_all) { in mpage_end_io()
72 page_endio(page, bio_op(bio), in mpage_end_io()
73 blk_status_to_errno(bio->bi_status)); in mpage_end_io()
76 bio_put(bio); in mpage_end_io()
79 static struct bio *mpage_bio_submit(int op, int op_flags, struct bio *bio) in mpage_bio_submit() argument
82 struct page *first_page = bio->bi_io_vec[0].bv_page; in mpage_bio_submit()
93 bio->bi_iter.bi_size, in mpage_bio_submit()
99 bio->bi_end_io = mpage_end_io; in mpage_bio_submit()
100 bio_set_op_attrs(bio, op, op_flags); in mpage_bio_submit()
101 guard_bio_eod(bio); in mpage_bio_submit()
102 submit_bio(bio); in mpage_bio_submit()
106 static struct bio *
111 struct bio *bio; in mpage_alloc() local
115 bio = bio_alloc(gfp_flags, nr_vecs); in mpage_alloc()
117 if (bio == NULL && (current->flags & PF_MEMALLOC)) { in mpage_alloc()
118 while (!bio && (nr_vecs /= 2)) in mpage_alloc()
119 bio = bio_alloc(gfp_flags, nr_vecs); in mpage_alloc()
122 if (bio) { in mpage_alloc()
123 bio_set_dev(bio, bdev); in mpage_alloc()
124 bio->bi_iter.bi_sector = first_sector; in mpage_alloc()
126 return bio; in mpage_alloc()
173 struct bio *bio; member
192 static struct bio *do_mpage_readpage(struct mpage_readpage_args *args) in do_mpage_readpage()
332 if (args->bio && (args->last_block_in_bio != blocks[0] - 1)) in do_mpage_readpage()
333 args->bio = mpage_bio_submit(REQ_OP_READ, op_flags, args->bio); in do_mpage_readpage()
336 if (args->bio == NULL) { in do_mpage_readpage()
342 args->bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9), in do_mpage_readpage()
346 if (args->bio == NULL) in do_mpage_readpage()
351 if (bio_add_page(args->bio, page, length, 0) < length) { in do_mpage_readpage()
352 args->bio = mpage_bio_submit(REQ_OP_READ, op_flags, args->bio); in do_mpage_readpage()
360 args->bio = mpage_bio_submit(REQ_OP_READ, op_flags, args->bio); in do_mpage_readpage()
364 return args->bio; in do_mpage_readpage()
367 if (args->bio) in do_mpage_readpage()
368 args->bio = mpage_bio_submit(REQ_OP_READ, op_flags, args->bio); in do_mpage_readpage()
440 args.bio = do_mpage_readpage(&args); in mpage_readpages()
445 if (args.bio) in mpage_readpages()
446 mpage_bio_submit(REQ_OP_READ, REQ_RAHEAD, args.bio); in mpage_readpages()
462 args.bio = do_mpage_readpage(&args); in mpage_readpage()
463 if (args.bio) in mpage_readpage()
464 mpage_bio_submit(REQ_OP_READ, 0, args.bio); in mpage_readpage()
487 struct bio *bio; member
536 struct bio *bio = mpd->bio; in __mpage_writepage() local
662 if (bio && mpd->last_block_in_bio != blocks[0] - 1) in __mpage_writepage()
663 bio = mpage_bio_submit(REQ_OP_WRITE, op_flags, bio); in __mpage_writepage()
666 if (bio == NULL) { in __mpage_writepage()
672 bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9), in __mpage_writepage()
674 if (bio == NULL) in __mpage_writepage()
677 wbc_init_bio(wbc, bio); in __mpage_writepage()
678 bio->bi_write_hint = inode->i_write_hint; in __mpage_writepage()
688 if (bio_add_page(bio, page, length, 0) < length) { in __mpage_writepage()
689 bio = mpage_bio_submit(REQ_OP_WRITE, op_flags, bio); in __mpage_writepage()
699 bio = mpage_bio_submit(REQ_OP_WRITE, op_flags, bio); in __mpage_writepage()
710 if (bio) in __mpage_writepage()
711 bio = mpage_bio_submit(REQ_OP_WRITE, op_flags, bio); in __mpage_writepage()
724 mpd->bio = bio; in __mpage_writepage()
760 .bio = NULL, in mpage_writepages()
767 if (mpd.bio) { in mpage_writepages()
770 mpage_bio_submit(REQ_OP_WRITE, op_flags, mpd.bio); in mpage_writepages()
782 .bio = NULL, in mpage_writepage()
788 if (mpd.bio) { in mpage_writepage()
791 mpage_bio_submit(REQ_OP_WRITE, op_flags, mpd.bio); in mpage_writepage()