From: NeilBrown Date: Mon, 13 Feb 2012 03:24:05 +0000 (+1100) Subject: md/raid1: fix buglet in md_raid1_contested. X-Git-Tag: Ubuntu-5.2.0-15.16~18612^2~2 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=f53e29fc87b6fb76db0043202ec2c3450caa5ff3;p=mirror_ubuntu-eoan-kernel.git md/raid1: fix buglet in md_raid1_contested. Since we added 'replacement' capability, RAID1 can have twice as many devices as ->raid_disks indicates. So md_raid1_congested needs to check that many possible devices, not just ->raid_disks many. Signed-off-by: NeilBrown --- diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index a368db2431a5..a0b225eb4ac4 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -624,7 +624,7 @@ int md_raid1_congested(struct mddev *mddev, int bits) return 1; rcu_read_lock(); - for (i = 0; i < conf->raid_disks; i++) { + for (i = 0; i < conf->raid_disks * 2; i++) { struct md_rdev *rdev = rcu_dereference(conf->mirrors[i].rdev); if (rdev && !test_bit(Faulty, &rdev->flags)) { struct request_queue *q = bdev_get_queue(rdev->bdev);