md: close a livelock window in handle_parity_checks5
authorDan Williams <dan.j.williams@intel.com>
Fri, 11 Apr 2008 04:29:27 +0000 (21:29 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 11 Apr 2008 15:06:44 +0000 (08:06 -0700)
commitbd2ab67030e9116f1e4aae1289220255412b37fd
treeda52cf8952a660f17ce45c8c510ded9a3487180a
parent231bc2a222411f43bfb0fbb6d64c0f34c7b1039f
md: close a livelock window in handle_parity_checks5

If a failure is detected after a parity check operation has been initiated,
but before it completes handle_parity_checks5 will never quiesce operations on
the stripe.

Explicitly handle this case by "canceling" the parity check, i.e.  clear the
STRIPE_OP_CHECK flags and queue the stripe on the handle list again to refresh
any non-uptodate blocks.

Kernel versions >= 2.6.23 are susceptible.

Cc: <stable@kernel.org>
Cc: NeilBrown <neilb@suse.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/md/raid5.c