On 7/21/21 11:47 AM, Mariusz Tkaczyk wrote: > The case when array is already degraded has been omitted > by commit 7b99edab2834 ("Assemble.c: respect force flag."). > Appropriative support has been added now. > > Handlers for "run" and "force" have been divided into independent > routines. Especially force has to be as meaningless as possible. > It respects following rules: > - user agrees to start array as degraded (by --run) or is already > degraded > - raid456 module is in use > - some drives are missing (to limit potential abuses) > > It doesn't allow to skip resync on dirty, but not degraded array. > > This patch cleans up message generation for external array and makes it > consistent. Following code could be reused also for native. > > In current implementation assemble_container_content is called once, in > both Incremental or Assembly mode. Thus makes that partial assembly is > not likely to happen. It is possible, but requires user input. > Partial assembly during reshape fails (sysfs_set_array > error - not yet investigated). For now I put FIXME to mark current > logic as known to be buggy because preexist_cnt contains both exp_cnt > and new_cnt which may produce an incorrect message. > > Check for new disks and runstop is unnecessary, so has been removed. > This allows to print assemble status in every case, even if nothing new > happens. > > Reported-by: Devon Beets <devon@xxxxxxxxxxxxxxxx> > Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@xxxxxxxxxxxxxxx> > --- > Assemble.c | 176 +++++++++++++++++++++++++++++--------------------- > mdadm.8.in | 3 +- > super-intel.c | 4 -- > 3 files changed, 103 insertions(+), 80 deletions(-) > Applied! Thanks, Jes