md/raid1: fix buglet in md_raid1_contested.
authorNeilBrown <neilb@suse.de>
Mon, 13 Feb 2012 03:24:05 +0000 (14:24 +1100)
committerNeilBrown <neilb@suse.de>
Mon, 13 Feb 2012 03:24:05 +0000 (14:24 +1100)
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 <neilb@suse.de>
drivers/md/raid1.c

index a368db2..a0b225e 100644 (file)
@@ -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);