md: Be more careful about clearing flags bit in ->recovery
authorNeilBrown <neilb@suse.de>
Thu, 13 Jan 2011 22:14:33 +0000 (09:14 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 13 Jan 2011 22:14:33 +0000 (09:14 +1100)
commit7ebc0be7fff4146e87b4078f054977b72998abd3
treef5b5b40674ec4e221e77eb1f9e4f36138f75df3c
parentdefad61a5b16352d3e22a04d4c930a5b5a7fd1f0
md: Be more careful about clearing flags bit in ->recovery

Setting ->recovery to 0 is generally not a good idea as it could clear
bits that shouldn't be cleared.  In particular, MD_RECOVERY_FROZEN
should only be cleared on explicit request from user-space.

So when we need to clear things, just clear the bits that need
clearing.

As there are a few different places which reap a resync process - and
some do an incomplte job - factor out the code for doing the from
md_check_recovery and call that function instead of open coding part
of it.

Signed-off-by: NeilBrown <neilb@suse.de>
Reported-by: Jonathan Brassow <jbrassow@redhat.com>
drivers/md/md.c