]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
FIX: Count correctly added devices
authorAdam Kwolek <adam.kwolek@intel.com>
Mon, 18 Apr 2011 00:31:43 +0000 (10:31 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 18 Apr 2011 00:31:43 +0000 (10:31 +1000)
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>
Assemble.c

index 268e248a083f99fdfbc8d0895b0716ea06915509..8b05829d3a132ed72dd7ddc63ae5772276b5fe81 100644 (file)
@@ -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