]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: FIX: Do not end migration when missing drive is handled
authorAdam Kwolek <adam.kwolek@intel.com>
Tue, 6 Dec 2011 00:24:22 +0000 (11:24 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 6 Dec 2011 00:24:22 +0000 (11:24 +1100)
Currently when degradation occurs migration is finalized. This is wrong.
Finalizing migration when it is not finished can lead to data corruption
after next array assembly.

Do not finish migration when degradation occurs.

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

index 0b2da922a81a6d84d6a14bd3b7e88199fe0037b0..5ad810c6a04ea680e74e0ef37b75d23b561bef83 100644 (file)
@@ -6112,17 +6112,12 @@ static void mark_missing(struct imsm_dev *dev, struct imsm_disk *disk, int idx)
 
 static void handle_missing(struct intel_super *super, struct imsm_dev *dev)
 {
-       __u8 map_state;
        struct dl *dl;
-       int failed;
 
        if (!super->missing)
                return;
-       failed = imsm_count_failed(super, dev);
-       map_state = imsm_check_degraded(super, dev, failed);
 
        dprintf("imsm: mark missing\n");
-       end_migration(dev, map_state);
        for (dl = super->missing; dl; dl = dl->next)
                mark_missing(dev, &dl->disk, dl->index);
        super->updates_pending++;