]> 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)
commitd2addffe6292e34aa9e1ab801b6554d223bd0335
tree623ac0e21c0f21c851c4dcffe8b317d41aafdb98
parent5b69731116214c747dd19798112a990641d3723e
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: 728f96289b2d4d1358935ee68aecb4a3738cc3b5
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c