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

Commit 2b74e12e authored by NeilBrown's avatar NeilBrown
Browse files

md: remove handling of flush_pending in md_submit_flush_data



None of the functions called between setting flush_pending to 1, and
atomic_dec_and_test can change flush_pending, or will anything
running in any other thread (as ->flush_bio is not NULL).  So the
atomic_dec_and_test will always succeed.
So remove the atomic_sec and the atomic_dec_and_test.

Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent be20e6c6
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -404,8 +404,6 @@ static void md_submit_flush_data(struct work_struct *ws)
	mddev_t *mddev = container_of(ws, mddev_t, flush_work);
	struct bio *bio = mddev->flush_bio;

	atomic_set(&mddev->flush_pending, 1);

	if (bio->bi_size == 0)
		/* an empty barrier - all done */
		bio_endio(bio, 0);
@@ -414,11 +412,10 @@ static void md_submit_flush_data(struct work_struct *ws)
		if (mddev->pers->make_request(mddev, bio))
			generic_make_request(bio);
	}
	if (atomic_dec_and_test(&mddev->flush_pending)) {

	mddev->flush_bio = NULL;
	wake_up(&mddev->sb_wait);
}
}

void md_flush_request(mddev_t *mddev, struct bio *bio)
{