aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/md.c
diff options
context:
space:
mode:
authorKent Overstreet <kmo@daterainc.com>2013-11-24 01:33:32 -0500
committerKent Overstreet <kmo@daterainc.com>2013-11-24 01:33:38 -0500
commit33879d4512c021ae65be9706608dacb36b4687b1 (patch)
tree40b8e604aaa7138685a41778bebb4901a1b2610c /drivers/md/md.c
parent6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae (diff)
block: submit_bio_wait() conversions
It was being open coded in a few places. Signed-off-by: Kent Overstreet <kmo@daterainc.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: Joern Engel <joern@logfs.org> Cc: Prasad Joshi <prasadjoshi.linux@gmail.com> Cc: Neil Brown <neilb@suse.de> Cc: Chris Mason <chris.mason@fusionio.com> Acked-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index b6b7a2866c9e..739b1ec54e28 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -776,20 +776,12 @@ void md_super_wait(struct mddev *mddev)
776 finish_wait(&mddev->sb_wait, &wq); 776 finish_wait(&mddev->sb_wait, &wq);
777} 777}
778 778
779static void bi_complete(struct bio *bio, int error)
780{
781 complete((struct completion*)bio->bi_private);
782}
783
784int sync_page_io(struct md_rdev *rdev, sector_t sector, int size, 779int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,
785 struct page *page, int rw, bool metadata_op) 780 struct page *page, int rw, bool metadata_op)
786{ 781{
787 struct bio *bio = bio_alloc_mddev(GFP_NOIO, 1, rdev->mddev); 782 struct bio *bio = bio_alloc_mddev(GFP_NOIO, 1, rdev->mddev);
788 struct completion event;
789 int ret; 783 int ret;
790 784
791 rw |= REQ_SYNC;
792
793 bio->bi_bdev = (metadata_op && rdev->meta_bdev) ? 785 bio->bi_bdev = (metadata_op && rdev->meta_bdev) ?
794 rdev->meta_bdev : rdev->bdev; 786 rdev->meta_bdev : rdev->bdev;
795 if (metadata_op) 787 if (metadata_op)
@@ -801,11 +793,7 @@ int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,
801 else 793 else
802 bio->bi_sector = sector + rdev->data_offset; 794 bio->bi_sector = sector + rdev->data_offset;
803 bio_add_page(bio, page, size, 0); 795 bio_add_page(bio, page, size, 0);
804 init_completion(&event); 796 submit_bio_wait(rw, bio);
805 bio->bi_private = &event;
806 bio->bi_end_io = bi_complete;
807 submit_bio(rw, bio);
808 wait_for_completion(&event);
809 797
810 ret = test_bit(BIO_UPTODATE, &bio->bi_flags); 798 ret = test_bit(BIO_UPTODATE, &bio->bi_flags);
811 bio_put(bio); 799 bio_put(bio);