md/raid1: Replace use of mddev->raid_disks with conf->raid_disks.
authorNeilBrown <neilb@suse.de>
Thu, 22 Dec 2011 23:17:56 +0000 (10:17 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 22 Dec 2011 23:17:56 +0000 (10:17 +1100)
In general mddev->raid_disks can change unexpectedly while
conf->raid_disks will only change in a very controlled way.  So change
some uses of one to the other.

The use of mddev->raid_disks will not cause actually problems but
this way is more consistent and safer in the long term.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid1.c

index 4317f8de143a64e0a4302cc6ab5c992dc9617f85..ab8113cff7c9f853cfc4b1a9fec9b86e6756fd48 100644 (file)
@@ -277,7 +277,8 @@ static inline void update_head_pos(int disk, struct r1bio *r1_bio)
 static int find_bio_disk(struct r1bio *r1_bio, struct bio *bio)
 {
        int mirror;
-       int raid_disks = r1_bio->mddev->raid_disks;
+       struct r1conf *conf = r1_bio->mddev->private;
+       int raid_disks = conf->raid_disks;
 
        for (mirror = 0; mirror < raid_disks; mirror++)
                if (r1_bio->bios[mirror] == bio)
@@ -609,7 +610,7 @@ int md_raid1_congested(struct mddev *mddev, int bits)
                return 1;
 
        rcu_read_lock();
-       for (i = 0; i < mddev->raid_disks; i++) {
+       for (i = 0; i < conf->raid_disks; 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);
@@ -1286,7 +1287,7 @@ static int raid1_add_disk(struct mddev *mddev, struct md_rdev *rdev)
        int mirror = 0;
        struct mirror_info *p;
        int first = 0;
-       int last = mddev->raid_disks - 1;
+       int last = conf->raid_disks - 1;
 
        if (mddev->recovery_disabled == conf->recovery_disabled)
                return -EBUSY;