mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
md/raid5: use conf->raid_disks in preference to mddev->raid_disk
mddev->raid_disks can be changed and any time by a request from user-space. It is a suggestion as to what number of raid_disks is desired. conf->raid_disks can only be changed by the raid5 module with suitable locks in place. It is a statement as to the current number of raid_disks. There are two places where the latter should be used, but the former is used. This can lead to a crash when reshaping an array. This patch changes to mddev-> to conf-> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
ccc0d38ec1
commit
f001a70cdc
1 changed files with 2 additions and 2 deletions
|
@ -3288,7 +3288,7 @@ static void unplug_slaves(mddev_t *mddev)
|
|||
int i;
|
||||
|
||||
rcu_read_lock();
|
||||
for (i=0; i<mddev->raid_disks; i++) {
|
||||
for (i = 0; i < conf->raid_disks; i++) {
|
||||
mdk_rdev_t *rdev = rcu_dereference(conf->disks[i].rdev);
|
||||
if (rdev && !test_bit(Faulty, &rdev->flags) && atomic_read(&rdev->nr_pending)) {
|
||||
struct request_queue *r_queue = bdev_get_queue(rdev->bdev);
|
||||
|
@ -4034,7 +4034,7 @@ static inline sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *ski
|
|||
* We don't need to check the 'failed' flag as when that gets set,
|
||||
* recovery aborts.
|
||||
*/
|
||||
for (i=0; i<mddev->raid_disks; i++)
|
||||
for (i = 0; i < conf->raid_disks; i++)
|
||||
if (conf->disks[i].rdev == NULL)
|
||||
still_degraded = 1;
|
||||
|
||||
|
|
Loading…
Reference in a new issue