diff options
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r-- | drivers/md/raid5.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index e867ee42b152..ce6960b1c682 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -4478,11 +4478,13 @@ static void raid5d(mddev_t *mddev) | |||
4478 | struct stripe_head *sh; | 4478 | struct stripe_head *sh; |
4479 | raid5_conf_t *conf = mddev->private; | 4479 | raid5_conf_t *conf = mddev->private; |
4480 | int handled; | 4480 | int handled; |
4481 | struct blk_plug plug; | ||
4481 | 4482 | ||
4482 | pr_debug("+++ raid5d active\n"); | 4483 | pr_debug("+++ raid5d active\n"); |
4483 | 4484 | ||
4484 | md_check_recovery(mddev); | 4485 | md_check_recovery(mddev); |
4485 | 4486 | ||
4487 | blk_start_plug(&plug); | ||
4486 | handled = 0; | 4488 | handled = 0; |
4487 | spin_lock_irq(&conf->device_lock); | 4489 | spin_lock_irq(&conf->device_lock); |
4488 | while (1) { | 4490 | while (1) { |
@@ -4525,6 +4527,7 @@ static void raid5d(mddev_t *mddev) | |||
4525 | spin_unlock_irq(&conf->device_lock); | 4527 | spin_unlock_irq(&conf->device_lock); |
4526 | 4528 | ||
4527 | async_tx_issue_pending_all(); | 4529 | async_tx_issue_pending_all(); |
4530 | blk_finish_plug(&plug); | ||
4528 | 4531 | ||
4529 | pr_debug("--- raid5d inactive\n"); | 4532 | pr_debug("--- raid5d inactive\n"); |
4530 | } | 4533 | } |