io_uring: rearrange defer list checks
There should be nothing in the ->work_llist for non DEFER_TASKRUN rings, so we can skip flag checks and test the list emptiness directly. Also move it out of io_run_local_work() for inlining. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/331d63fd15ca79b35b95c82a82d9246110686392.1672916894.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
6d796c50f8
Коммит
0c4fe008c9
|
@ -1343,9 +1343,6 @@ int io_run_local_work(struct io_ring_ctx *ctx)
|
|||
bool locked;
|
||||
int ret;
|
||||
|
||||
if (llist_empty(&ctx->work_llist))
|
||||
return 0;
|
||||
|
||||
__set_current_state(TASK_RUNNING);
|
||||
locked = mutex_trylock(&ctx->uring_lock);
|
||||
ret = __io_run_local_work(ctx, &locked);
|
||||
|
|
|
@ -289,7 +289,7 @@ static inline int io_run_task_work_ctx(struct io_ring_ctx *ctx)
|
|||
int ret = 0;
|
||||
int ret2;
|
||||
|
||||
if (ctx->flags & IORING_SETUP_DEFER_TASKRUN)
|
||||
if (!llist_empty(&ctx->work_llist))
|
||||
ret = io_run_local_work(ctx);
|
||||
|
||||
/* want to run this after in case more is added */
|
||||
|
|
Загрузка…
Ссылка в новой задаче