]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
ddf/intel: zero out old metadata before creating a container.
authorNeilBrown <neilb@suse.de>
Wed, 10 Mar 2010 04:55:47 +0000 (15:55 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 10 Mar 2010 04:55:47 +0000 (15:55 +1100)
Matching the functionality already in super0 and super1, when
we first create a container, remove any other recognisable metadata to
ensure it doesn't cause confusion.

Signed-off-by: NeilBrown <neilb@suse.de>
super-ddf.c
super-intel.c

index b1cb268960616209d3cd8c7c87f8d705c93e2e94..3feea57796e1242201095ca85659b9279902a1ff 100644 (file)
@@ -2413,8 +2413,12 @@ static int write_init_super_ddf(struct supertype *st)
 
                /* FIXME I need to close the fds! */
                return 0;
-       } else 
+       } else {        
+               struct dl *d;
+               for (d = ddf->dlist; d; d=d->next)
+                       while (Kill(d->devname, NULL, 0, 1, 1) == 0);
                return __write_init_super_ddf(st, 1);
+       }
 }
 
 #endif
index b413435d27634c65e36c30bf71dc3b7891149d8a..a196ca3d38eb2ea9c5b98edd61019bf06791b215 100644 (file)
@@ -3441,8 +3441,12 @@ static int write_init_super_imsm(struct supertype *st)
                }
 
                return rv;
-       } else
+       } else {
+               struct dl *d;
+               for (d = super->disks; d; d = d->next)
+                       Kill(d->devname, NULL, 0, 1, 1);
                return write_super_imsm(st->sb, 1);
+       }
 }
 #endif