Re: [PATCH] raid5: fix broken async operation chain
From: NeilBrown <hidden>
Date: 2015-05-20 06:14:38
Attachments
- (unnamed) [application/pgp-signature] 811 bytes
From: NeilBrown <hidden>
Date: 2015-05-20 06:14:38
On Wed, 13 May 2015 09:30:08 -0700 Shaohua Li [off-list ref] wrote:
ops_run_reconstruct6() doesn't correctly chain asyn operations. The tx returned by async_gen_syndrome should be added as the dependent tx of next stripe. The issue is introduced by commit 59fc630b8b5f9f21c8ce3ba153341c107dce1b0c RAID5: batch adjacent full stripe write Reported-and-tested-by: Maxime Ripard <redacted> Signed-off-by: Shaohua Li <redacted> --- drivers/md/raid5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 1ba97fd..b9f2b9c 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c@@ -1822,7 +1822,7 @@ ops_run_reconstruct6(struct stripe_head *sh, struct raid5_percpu *percpu, } else init_async_submit(&submit, 0, tx, NULL, NULL, to_addr_conv(sh, percpu, j)); - async_gen_syndrome(blocks, 0, count+2, STRIPE_SIZE, &submit); + tx = async_gen_syndrome(blocks, 0, count+2, STRIPE_SIZE, &submit); if (!last_stripe) { j++; sh = list_first_entry(&sh->batch_list, struct stripe_head,
applied, thanks. NeilBrown