FIX: Count correctly added devices
When array is in reshape state raid_disks field contains final disks number. To know how many disks were added, disk.raid_disk index has to be compared against old disk number computed using delta_disks. Signed-off-by: Adam Kwolek <adam.kwolek@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
a5062b1cb6
commit
7af0334155
|
@ -1516,6 +1516,7 @@ int assemble_container_content(struct supertype *st, int mdfd,
|
|||
int working = 0, preexist = 0;
|
||||
int expansion = 0;
|
||||
struct map_ent *map = NULL;
|
||||
int old_raid_disks;
|
||||
|
||||
sysfs_init(content, mdfd, 0);
|
||||
|
||||
|
@ -1529,10 +1530,10 @@ int assemble_container_content(struct supertype *st, int mdfd,
|
|||
|
||||
if (sra)
|
||||
sysfs_free(sra);
|
||||
|
||||
old_raid_disks = content->array.raid_disks - content->delta_disks;
|
||||
for (dev = content->devs; dev; dev = dev->next)
|
||||
if (sysfs_add_disk(content, dev, 1) == 0) {
|
||||
if (dev->disk.raid_disk >= content->array.raid_disks &&
|
||||
if (dev->disk.raid_disk >= old_raid_disks &&
|
||||
content->reshape_active)
|
||||
expansion++;
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue