aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/md.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r--drivers/md/md.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index c068f171b4eb..194580fba7fd 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -718,6 +718,7 @@ static void super_written(struct bio *bio)
718 718
719 if (atomic_dec_and_test(&mddev->pending_writes)) 719 if (atomic_dec_and_test(&mddev->pending_writes))
720 wake_up(&mddev->sb_wait); 720 wake_up(&mddev->sb_wait);
721 rdev_dec_pending(rdev, mddev);
721 bio_put(bio); 722 bio_put(bio);
722} 723}
723 724
@@ -732,6 +733,8 @@ void md_super_write(struct mddev *mddev, struct md_rdev *rdev,
732 */ 733 */
733 struct bio *bio = bio_alloc_mddev(GFP_NOIO, 1, mddev); 734 struct bio *bio = bio_alloc_mddev(GFP_NOIO, 1, mddev);
734 735
736 atomic_inc(&rdev->nr_pending);
737
735 bio->bi_bdev = rdev->meta_bdev ? rdev->meta_bdev : rdev->bdev; 738 bio->bi_bdev = rdev->meta_bdev ? rdev->meta_bdev : rdev->bdev;
736 bio->bi_iter.bi_sector = sector; 739 bio->bi_iter.bi_sector = sector;
737 bio_add_page(bio, page, size, 0); 740 bio_add_page(bio, page, size, 0);
@@ -6883,7 +6886,7 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
6883 6886
6884 case ADD_NEW_DISK: 6887 case ADD_NEW_DISK:
6885 /* We can support ADD_NEW_DISK on read-only arrays 6888 /* We can support ADD_NEW_DISK on read-only arrays
6886 * on if we are re-adding a preexisting device. 6889 * only if we are re-adding a preexisting device.
6887 * So require mddev->pers and MD_DISK_SYNC. 6890 * So require mddev->pers and MD_DISK_SYNC.
6888 */ 6891 */
6889 if (mddev->pers) { 6892 if (mddev->pers) {