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

io_uring: fix overflow handling regression



Because the single task locking series got reordered ahead of the
timeout and completion lock changes, two hunks inadvertently ended up
using __io_fill_cqe_req() rather than io_fill_cqe_req(). This meant
that we dropped overflow handling in those two spots. Reinstate the
correct CQE filling helper.

Fixes: f66f7342 ("io_uring: skip spinlocking for ->task_complete")
Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e5f30f6f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -927,7 +927,7 @@ static void __io_req_complete_post(struct io_kiocb *req)

	io_cq_lock(ctx);
	if (!(req->flags & REQ_F_CQE_SKIP))
		__io_fill_cqe_req(ctx, req);
		io_fill_cqe_req(ctx, req);

	/*
	 * If we're the last reference to this request, add to our locked
+1 −1
Original line number Diff line number Diff line
@@ -1062,7 +1062,7 @@ int io_do_iopoll(struct io_ring_ctx *ctx, bool force_nonspin)
			continue;

		req->cqe.flags = io_put_kbuf(req, 0);
		__io_fill_cqe_req(req->ctx, req);
		io_fill_cqe_req(req->ctx, req);
	}

	if (unlikely(!nr_events))