aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid1.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-02-13 14:24:05 +1100
committerNeilBrown <neilb@suse.de>2012-02-13 14:24:05 +1100
commitf53e29fc87b6fb76db0043202ec2c3450caa5ff3 (patch)
treeb1f8705e420775a40ebb2f26132fe27184b82fbb /drivers/md/raid1.c
parentmd: two small fixes to handling interrupt resync. (diff)
downloadlinux-dev-f53e29fc87b6fb76db0043202ec2c3450caa5ff3.tar.xz
linux-dev-f53e29fc87b6fb76db0043202ec2c3450caa5ff3.zip
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 <neilb@suse.de>
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r--drivers/md/raid1.c2
1 files changed, 1 insertions, 1 deletions
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);