]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: FIX: Use first map only in migration record disk operations
authorAdam Kwolek <adam.kwolek@intel.com>
Mon, 12 Dec 2011 11:07:53 +0000 (12:07 +0100)
committerNeilBrown <neilb@suse.de>
Tue, 13 Dec 2011 01:53:01 +0000 (12:53 +1100)
This patch is addition to patch:
    "imsm: FIX: Limit migration record operation by disk slot not by index"
Location of migration record (2 first slots) should be taken on up to date
information. It is in first map.
Change slot verification to use first map only.

Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
super-intel.c

index d90d96ba1af0abb71ac9827734e5b9ee08f01aba..bfbaf10d4f3e316edc91cc8fbf700fa09555d79a 100644 (file)
@@ -1178,8 +1178,8 @@ void examine_migr_rec_imsm(struct intel_super *super)
 
                printf("\nMigration Record Information:");
 
-               /* map under migration */
-               map = get_imsm_map(dev, MAP_1);
+               /* first map under migration */
+               map = get_imsm_map(dev, MAP_0);
                if (map)
                        slot = get_imsm_disk_slot(map, super->disks->index);
                if ((map == NULL) || (slot > 1) || (slot < 0)) {
@@ -2131,7 +2131,7 @@ static int load_imsm_migr_rec(struct intel_super *super, struct mdinfo *info)
        */
        if (dev == NULL)
                return 0;
-       map = get_imsm_map(dev, MAP_1);
+       map = get_imsm_map(dev, MAP_0);
 
        if (info) {
                for (sd = info->devs ; sd ; sd = sd->next) {
@@ -2257,7 +2257,7 @@ static int write_imsm_migr_rec(struct supertype *st)
                dev = get_imsm_dev(super, super->current_vol < 0 ? 0 :
                                          super->current_vol);
 
-       map = get_imsm_map(dev, MAP_X);
+       map = get_imsm_map(dev, MAP_0);
 
        for (sd = super->disks ; sd ; sd = sd->next) {
                int slot;