Unverified Commit 7ddb8d6c authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!14380 io_uring: check if iowq is killed before queuing

parents 41c5e1e7 66e4b110
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1096,6 +1096,7 @@ static struct file *io_file_get(struct io_ring_ctx *ctx,
				unsigned int issue_flags);
static void __io_queue_sqe(struct io_kiocb *req);
static void io_rsrc_put_work(struct work_struct *work);
static void io_req_task_queue_fail(struct io_kiocb *req, int ret);

static void io_req_task_queue(struct io_kiocb *req);
static void io_submit_flush_completions(struct io_ring_ctx *ctx);
@@ -1465,7 +1466,11 @@ static void io_queue_async_work(struct io_kiocb *req, bool *locked)
	locked = NULL;

	BUG_ON(!tctx);
	BUG_ON(!tctx->io_wq);

	if ((current->flags & PF_KTHREAD) || !tctx->io_wq) {
		io_req_task_queue_fail(req, -ECANCELED);
		return;
	}

	/* init ->work of the whole link before punting */
	io_prep_async_link(req);