Commit 8e8278ac authored by Abd-Alrhman Masalkhi's avatar Abd-Alrhman Masalkhi Committed by Yu Kuai
Browse files

md: replace wait loop with wait_event() in md_handle_request()



The wait loop is equivalent to wait_event() and can be simplified by
usaing it for improving readability.

Signed-off-by: default avatarAbd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
Link: https://lore.kernel.org/r/20260415140319.376578-2-abd.masalkhi@gmail.com


Signed-off-by: default avatarYu Kuai <yukuai@fnnas.com>
parent 9aa6d860
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -396,20 +396,12 @@ bool md_handle_request(struct mddev *mddev, struct bio *bio)
{
check_suspended:
	if (is_suspended(mddev, bio)) {
		DEFINE_WAIT(__wait);
		/* Bail out if REQ_NOWAIT is set for the bio */
		if (bio->bi_opf & REQ_NOWAIT) {
			bio_wouldblock_error(bio);
			return true;
		}
		for (;;) {
			prepare_to_wait(&mddev->sb_wait, &__wait,
					TASK_UNINTERRUPTIBLE);
			if (!is_suspended(mddev, bio))
				break;
			schedule();
		}
		finish_wait(&mddev->sb_wait, &__wait);
		wait_event(mddev->sb_wait, !is_suspended(mddev, bio));
	}
	if (!percpu_ref_tryget_live(&mddev->active_io))
		goto check_suspended;