]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: fix mpb_size calculation in write_super_imsm
authorDan Williams <dan.j.williams@intel.com>
Sun, 28 Sep 2008 19:12:07 +0000 (12:12 -0700)
committerDan Williams <dan.j.williams@intel.com>
Wed, 15 Oct 2008 21:15:51 +0000 (14:15 -0700)
Spotted a thinko... raid devices are dynamically sized, disks are not.
The space for disks is always mpb->num_disks * sizeof(struct imsm_disk).

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
super-intel.c

index 80427e4a7c25d29e8e0e2e5771b9ddfa31f04451..19c964f8843c5257e51e1ac2a701c57326c6a9d0 100644 (file)
@@ -1854,13 +1854,12 @@ static int write_super_imsm(struct intel_super *super, int doclose)
        generation++;
        mpb->generation_num = __cpu_to_le32(generation);
 
+       mpb_size += sizeof(struct imsm_disk) * mpb->num_disks;
        for (d = super->disks; d; d = d->next) {
                if (d->index == -1)
                        spares++;
-               else {
+               else
                        mpb->disk[d->index] = d->disk;
-                       mpb_size += sizeof(struct imsm_disk);
-               }
        }
 
        for (i = 0; i < mpb->num_raid_devs; i++) {