io_uring/rsrc: remove redundant __set_current_state() post schedule()

We're guaranteed to be in a TASK_RUNNING state post schedule, so we
never need to set the state after that. While in there, remove the
other __set_current_state() as well, and just call finish_wait()
when we now we're going to break anyway. This is easier to grok than
manual __set_current_state() calls.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Jens Axboe 2024-06-14 18:34:50 -06:00
parent 3474d1b93f
commit 11d1946692

View file

@ -224,7 +224,7 @@ __cold static int io_rsrc_ref_quiesce(struct io_rsrc_data *data,
ret = io_run_task_work_sig(ctx); ret = io_run_task_work_sig(ctx);
if (ret < 0) { if (ret < 0) {
__set_current_state(TASK_RUNNING); finish_wait(&ctx->rsrc_quiesce_wq, &we);
mutex_lock(&ctx->uring_lock); mutex_lock(&ctx->uring_lock);
if (list_empty(&ctx->rsrc_ref_list)) if (list_empty(&ctx->rsrc_ref_list))
ret = 0; ret = 0;
@ -232,7 +232,6 @@ __cold static int io_rsrc_ref_quiesce(struct io_rsrc_data *data,
} }
schedule(); schedule();
__set_current_state(TASK_RUNNING);
mutex_lock(&ctx->uring_lock); mutex_lock(&ctx->uring_lock);
ret = 0; ret = 0;
} while (!list_empty(&ctx->rsrc_ref_list)); } while (!list_empty(&ctx->rsrc_ref_list));