]> git.baikalelectronics.ru Git - kernel.git/commit
md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN
authorNeilBrown <neilb@suse.de>
Tue, 28 Oct 2014 21:49:50 +0000 (08:49 +1100)
committerNeilBrown <neilb@suse.de>
Sun, 16 Nov 2014 22:17:46 +0000 (09:17 +1100)
commit255153b56c528364de91ddcc596ef4e3c13f960e
tree623ac0e21c0f21c851c4dcffe8b317d41aafdb98
parent0002cf1d2b453149c8e818e69580694f5a5e90c1
md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN

md_check_recovery will skip any recovery and also clear
MD_RECOVERY_NEEDED if MD_RECOVERY_FROZEN is set.
So when we clear _FROZEN, we must set _NEEDED and ensure that
md_check_recovery gets run.
Otherwise we could miss out on something that is needed.

In particular, this can make it impossible to remove a
failed device from an array is the  'recovery-needed' processing
didn't happen.
Suitable for stable kernels since 3.13.

Cc: stable@vger.kernel.org (3.13+)
Reported-and-tested-by: Joe Lawrence <joe.lawrence@stratus.com>
Fixes: 4f8a2995735a75f9bdcacccea661a35056aa4799
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c