Lines Matching refs:bio
164 struct bio *bio_alloc_mddev(gfp_t gfp_mask, int nr_iovecs, in bio_alloc_mddev()
167 struct bio *b; in bio_alloc_mddev()
179 struct bio *bio_clone_mddev(struct bio *bio, gfp_t gfp_mask, in bio_clone_mddev() argument
183 return bio_clone(bio, gfp_mask); in bio_clone_mddev()
185 return bio_clone_bioset(bio, gfp_mask, mddev->bio_set); in bio_clone_mddev()
253 static void md_make_request(struct request_queue *q, struct bio *bio) in md_make_request() argument
255 const int rw = bio_data_dir(bio); in md_make_request()
262 bio_io_error(bio); in md_make_request()
266 bio_endio(bio, bio_sectors(bio) == 0 ? 0 : -EROFS); in md_make_request()
291 sectors = bio_sectors(bio); in md_make_request()
293 bio->bi_rw &= ~REQ_NOMERGE; in md_make_request()
294 mddev->pers->make_request(mddev, bio); in md_make_request()
382 static void md_end_flush(struct bio *bio, int err) in md_end_flush() argument
384 struct md_rdev *rdev = bio->bi_private; in md_end_flush()
393 bio_put(bio); in md_end_flush()
413 struct bio *bi; in submit_flushes()
434 struct bio *bio = mddev->flush_bio; in md_submit_flush_data() local
436 if (bio->bi_iter.bi_size == 0) in md_submit_flush_data()
438 bio_endio(bio, 0); in md_submit_flush_data()
440 bio->bi_rw &= ~REQ_FLUSH; in md_submit_flush_data()
441 mddev->pers->make_request(mddev, bio); in md_submit_flush_data()
448 void md_flush_request(struct mddev *mddev, struct bio *bio) in md_flush_request() argument
454 mddev->flush_bio = bio; in md_flush_request()
733 static void super_written(struct bio *bio, int error) in super_written() argument
735 struct md_rdev *rdev = bio->bi_private; in super_written()
738 if (error || !test_bit(BIO_UPTODATE, &bio->bi_flags)) { in super_written()
740 error, test_bit(BIO_UPTODATE, &bio->bi_flags)); in super_written()
741 WARN_ON(test_bit(BIO_UPTODATE, &bio->bi_flags)); in super_written()
747 bio_put(bio); in super_written()
759 struct bio *bio = bio_alloc_mddev(GFP_NOIO, 1, mddev); in md_super_write() local
761 bio->bi_bdev = rdev->meta_bdev ? rdev->meta_bdev : rdev->bdev; in md_super_write()
762 bio->bi_iter.bi_sector = sector; in md_super_write()
763 bio_add_page(bio, page, size, 0); in md_super_write()
764 bio->bi_private = rdev; in md_super_write()
765 bio->bi_end_io = super_written; in md_super_write()
768 submit_bio(WRITE_FLUSH_FUA, bio); in md_super_write()
780 struct bio *bio = bio_alloc_mddev(GFP_NOIO, 1, rdev->mddev); in sync_page_io() local
783 bio->bi_bdev = (metadata_op && rdev->meta_bdev) ? in sync_page_io()
786 bio->bi_iter.bi_sector = sector + rdev->sb_start; in sync_page_io()
790 bio->bi_iter.bi_sector = sector + rdev->new_data_offset; in sync_page_io()
792 bio->bi_iter.bi_sector = sector + rdev->data_offset; in sync_page_io()
793 bio_add_page(bio, page, size, 0); in sync_page_io()
794 submit_bio_wait(rw, bio); in sync_page_io()
796 ret = test_bit(BIO_UPTODATE, &bio->bi_flags); in sync_page_io()
797 bio_put(bio); in sync_page_io()
7511 void md_write_start(struct mddev *mddev, struct bio *bi) in md_write_start()