raid6: fix recovery performance regression
authorDan Williams <dan.j.williams@intel.com>
Wed, 5 May 2010 03:41:56 +0000 (20:41 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 5 May 2010 14:52:56 +0000 (07:52 -0700)
commit5157b4aa5b7de8787b6318e61bcc285031bb9088
treecf47d7739d646895a151bf3fd71e56e64dc9d260
parent7ebd467551ed6ae200d7835a84bbda0dcadaa511
raid6: fix recovery performance regression

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.

Cc: <stable@kernel.org>
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>
crypto/async_tx/async_raid6_recov.c