Assemble: avoid infinite loop when auto-assembling partial container.
When auto-assembling we loop until we get no successes. If a device is found that look like it is part of an already-existing container, but we subsequently fail to add that device, then the fact that the container is running looks like a success. This can result in infinite looping. So if a container was already partially assemble, and is still only partially assembled after we try to add devices, then don't treat that as success. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
a34fea0eae
commit
284546ef89
|
@ -990,6 +990,10 @@ static int start_array(int mdfd,
|
|||
}
|
||||
st->ss->free_super(st);
|
||||
sysfs_uevent(content, "change");
|
||||
if (err_ok && okcnt < (unsigned)content->array.raid_disks)
|
||||
/* Was partial, is still partial, so signal an error
|
||||
* to ensure we don't retry */
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue