raid6: fix recovery performance regression
authorDan Williams <dan.j.williams@intel.com>
Wed, 5 May 2010 03:41:56 +0000 (20:41 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 May 2010 22:02:42 +0000 (15:02 -0700)
commitd15b5afa5324123c49dd9b19acc56d9223cadb45
tree8192c71ae7493d513dd1cd2104fa221c4211b54b
parent0c41fcd0b738e0ac646e043ed47b7f642947b6a0
raid6: fix recovery performance regression

commit 5157b4aa5b7de8787b6318e61bcc285031bb9088 upstream.

The raid6 recovery code should immediately drop back to the optimized
synchronous path when a p+q dma resource is not available.  Otherwise we
run the non-optimized/multi-pass async code in sync mode.

Verified with raid6test (NDISKS=255)

Applies to kernels >= 2.6.32.

Acked-by: NeilBrown <neilb@suse.de>
Reported-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
crypto/async_tx/async_raid6_recov.c