Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48769695 authored by Shaohua Li's avatar Shaohua Li Committed by NeilBrown
Browse files

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 59fc630b
    RAID5: batch adjacent full stripe write

Reported-and-tested-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent bb27051f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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,