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

Commit ad4068de authored by majianpeng's avatar majianpeng Committed by NeilBrown
Browse files

raid5: Use slow_path to release stripe when mddev->thread is null



When release_stripe() is called in grow_one_stripe(), the
mddev->thread is null. So it will omit one wakeup this thread to
release stripe.
For this condition, use slow_path to release stripe.

Bug was introduced in 3.12

Cc: stable@vger.kernel.org (3.12+)
Fixes: 773ca82f
Signed-off-by: default avatarJianpeng Ma <majianpeng@gmail.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 39cf275a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -340,7 +340,8 @@ static void release_stripe(struct stripe_head *sh)
	unsigned long flags;
	bool wakeup;

	if (test_and_set_bit(STRIPE_ON_RELEASE_LIST, &sh->state))
	if (unlikely(!conf->mddev->thread) ||
		test_and_set_bit(STRIPE_ON_RELEASE_LIST, &sh->state))
		goto slow_path;
	wakeup = llist_add(&sh->release_list, &conf->released_stripes);
	if (wakeup)