aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid5.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2011-04-18 04:25:41 -0400
committerNeilBrown <neilb@suse.de>2011-04-18 04:25:41 -0400
commite1dfa0a29737142c32f00a3bac0f609dc85b4a82 (patch)
tree1af906cc5e959803e7d5ea0e56fb69b56754501a /drivers/md/raid5.c
parent99e22598e9a8e0a996d69c8c0f6b7027cb57720a (diff)
md: use new plugging interface for RAID IO.
md/raid submits a lot of IO from the various raid threads. So adding start/finish plug calls to those so that some plugging happens. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r--drivers/md/raid5.c3
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}