diff options
author | Shaohua Li <shli@kernel.org> | 2015-05-13 09:30:08 -0700 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2015-05-21 09:14:20 +1000 |
commit | 487696957e3bd64ccffe62c0ac4ff7bf662785ab (patch) | |
tree | bc03d9ac49f4344fea737912783f5f9c9624094e /drivers/md | |
parent | bb27051f9fd7643f05d8f0babce3337f0b9b3087 (diff) | |
download | linux-487696957e3bd64ccffe62c0ac4ff7bf662785ab.tar.bz2 |
raid5: fix broken async operation chain
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 <maxime.ripard@free-electrons.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/raid5.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 1ba97fdc6df1..b9f2b9cc6060 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -1822,7 +1822,7 @@ again: } 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, |