diff options
author | NeilBrown <neilb@suse.de> | 2011-04-18 04:25:41 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-04-18 04:25:41 -0400 |
commit | e1dfa0a29737142c32f00a3bac0f609dc85b4a82 (patch) | |
tree | 1af906cc5e959803e7d5ea0e56fb69b56754501a /drivers/md/raid5.c | |
parent | 99e22598e9a8e0a996d69c8c0f6b7027cb57720a (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.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 | } |