md: Keep /proc/mdstat reporting recovery until fully DONE.
authorNeilBrown <neilb@suse.com>
Thu, 2 Jul 2015 07:12:58 +0000 (17:12 +1000)
committerNeilBrown <neilb@suse.com>
Mon, 31 Aug 2015 17:29:09 +0000 (19:29 +0200)
commitf7851be736d58e7270f05a4ca84b16ce72734a18
tree7bd642495fca85950a2ad76f2cec0d4ab153ae01
parent0e833e697bcf4c2f3f7fb9fce39d08cd4439e5d7
md: Keep /proc/mdstat reporting recovery until fully DONE.

Currently when a recovery completes, mdstat shows that it has finished
before the new device is marked as a full member.  Because of this it
can appear to a script that the recovery finished but the array isn't
in sync.

So while MD_RECOVERY_DONE is still set, keep mdstat reporting "recovery".
Once md_reap_sync_thread() completes, the spare will be active and then
MD_RECOVERY_DONE will be cleared.

To ensure this is race-free, set MD_RECOVERY_DONE before clearning
curr_resync.

Signed-off-by: NeilBrown <neilb@suse.com>
drivers/md/md.c