Incremental: be more relaxed about member arrays not completely assembling.

During incremental assembly, if the member array doesn't assemble
properly (yet), that isn't an error.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2009-04-07 17:49:05 +10:00
parent 8b4e5ea926
commit 03b7f6c6bd
1 changed files with 10 additions and 7 deletions

View File

@ -402,8 +402,14 @@ int Incremental(char *devname, int verbose, int runstop,
close(mdfd);
if (runstop < 0)
return 0; /* don't try to assemble */
return Incremental(chosen_name, verbose, runstop,
NULL, homehost, autof);
rv = Incremental(chosen_name, verbose, runstop,
NULL, homehost, autof);
if (rv == 1)
/* Don't fail the whole -I if a subarray didn't
* have enough devices to start yet
*/
rv = 0;
return rv;
}
avail = NULL;
active_disks = count_active(st, mdfd, &avail, &info);
@ -729,7 +735,6 @@ int Incremental_container(struct supertype *st, char *devname, int verbose,
char chosen_name[1024];
struct map_ent *mp;
struct mddev_ident_s *match = NULL;
int err;
mp = map_by_uuid(&map, ra->uuid);
@ -789,10 +794,8 @@ int Incremental_container(struct supertype *st, char *devname, int verbose,
return 2;
}
err = assemble_container_content(st, mdfd, ra, runstop,
chosen_name, verbose);
if (err)
return err;
assemble_container_content(st, mdfd, ra, runstop,
chosen_name, verbose);
}
map_unlock(&map);
return 0;