Commit 1414d629 authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Jens Axboe
Browse files

io_uring: kill io_run_task_work_ctx

parent f36ba6cf
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -2455,7 +2455,11 @@ static int io_wake_function(struct wait_queue_entry *curr, unsigned int mode,

int io_run_task_work_sig(struct io_ring_ctx *ctx)
{
	if (io_run_task_work_ctx(ctx) > 0)
	if (!llist_empty(&ctx->work_llist)) {
		if (io_run_local_work(ctx) > 0)
			return 1;
	}
	if (io_run_task_work() > 0)
		return 1;
	if (task_sigpending(current))
		return -EINTR;
+0 −20
Original line number Diff line number Diff line
@@ -284,26 +284,6 @@ static inline bool io_task_work_pending(struct io_ring_ctx *ctx)
	return task_work_pending(current) || !wq_list_empty(&ctx->work_llist);
}

static inline int io_run_task_work_ctx(struct io_ring_ctx *ctx)
{
	int ret = 0;
	int ret2;

	if (!llist_empty(&ctx->work_llist))
		ret = io_run_local_work(ctx);

	/* want to run this after in case more is added */
	ret2 = io_run_task_work();

	/* Try propagate error in favour of if tasks were run,
	 * but still make sure to run them if requested
	 */
	if (ret >= 0)
		ret += ret2;

	return ret;
}

static inline int io_run_local_work_locked(struct io_ring_ctx *ctx)
{
	bool locked;