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>

NeilBrown e1dfa0a2 99e22598

+10 -1
+4 -1
drivers/md/raid1.c
··· 1516 conf_t *conf = mddev->private; 1517 struct list_head *head = &conf->retry_list; 1518 mdk_rdev_t *rdev; 1519 1520 md_check_recovery(mddev); 1521 - 1522 for (;;) { 1523 char b[BDEVNAME_SIZE]; 1524 ··· 1595 } 1596 cond_resched(); 1597 } 1598 } 1599 1600
··· 1516 conf_t *conf = mddev->private; 1517 struct list_head *head = &conf->retry_list; 1518 mdk_rdev_t *rdev; 1519 + struct blk_plug plug; 1520 1521 md_check_recovery(mddev); 1522 + 1523 + blk_start_plug(&plug); 1524 for (;;) { 1525 char b[BDEVNAME_SIZE]; 1526 ··· 1593 } 1594 cond_resched(); 1595 } 1596 + blk_finish_plug(&plug); 1597 } 1598 1599
+3
drivers/md/raid10.c
··· 1640 conf_t *conf = mddev->private; 1641 struct list_head *head = &conf->retry_list; 1642 mdk_rdev_t *rdev; 1643 1644 md_check_recovery(mddev); 1645 1646 for (;;) { 1647 char b[BDEVNAME_SIZE]; 1648 ··· 1718 } 1719 cond_resched(); 1720 } 1721 } 1722 1723
··· 1640 conf_t *conf = mddev->private; 1641 struct list_head *head = &conf->retry_list; 1642 mdk_rdev_t *rdev; 1643 + struct blk_plug plug; 1644 1645 md_check_recovery(mddev); 1646 1647 + blk_start_plug(&plug); 1648 for (;;) { 1649 char b[BDEVNAME_SIZE]; 1650 ··· 1716 } 1717 cond_resched(); 1718 } 1719 + blk_finish_plug(&plug); 1720 } 1721 1722
+3
drivers/md/raid5.c
··· 4478 struct stripe_head *sh; 4479 raid5_conf_t *conf = mddev->private; 4480 int handled; 4481 4482 pr_debug("+++ raid5d active\n"); 4483 4484 md_check_recovery(mddev); 4485 4486 handled = 0; 4487 spin_lock_irq(&conf->device_lock); 4488 while (1) { ··· 4527 spin_unlock_irq(&conf->device_lock); 4528 4529 async_tx_issue_pending_all(); 4530 4531 pr_debug("--- raid5d inactive\n"); 4532 }
··· 4478 struct stripe_head *sh; 4479 raid5_conf_t *conf = mddev->private; 4480 int handled; 4481 + struct blk_plug plug; 4482 4483 pr_debug("+++ raid5d active\n"); 4484 4485 md_check_recovery(mddev); 4486 4487 + blk_start_plug(&plug); 4488 handled = 0; 4489 spin_lock_irq(&conf->device_lock); 4490 while (1) { ··· 4525 spin_unlock_irq(&conf->device_lock); 4526 4527 async_tx_issue_pending_all(); 4528 + blk_finish_plug(&plug); 4529 4530 pr_debug("--- raid5d inactive\n"); 4531 }