diff options
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r-- | drivers/md/raid5.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 34cb065f6d66..8c9395f2028f 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -3865,7 +3865,13 @@ static int make_request(struct request_queue *q, struct bio * bi) | |||
3865 | int cpu, remaining; | 3865 | int cpu, remaining; |
3866 | 3866 | ||
3867 | if (unlikely(bio_rw_flagged(bi, BIO_RW_BARRIER))) { | 3867 | if (unlikely(bio_rw_flagged(bi, BIO_RW_BARRIER))) { |
3868 | bio_endio(bi, -EOPNOTSUPP); | 3868 | /* Drain all pending writes. We only really need |
3869 | * to ensure they have been submitted, but this is | ||
3870 | * easier. | ||
3871 | */ | ||
3872 | mddev->pers->quiesce(mddev, 1); | ||
3873 | mddev->pers->quiesce(mddev, 0); | ||
3874 | md_barrier_request(mddev, bi); | ||
3869 | return 0; | 3875 | return 0; |
3870 | } | 3876 | } |
3871 | 3877 | ||