Commit e4e6aaea authored by Jens Axboe's avatar Jens Axboe
Browse files

io_uring: clear ->async_data as part of normal init



Opcode handlers like POLL_ADD will use ->async_data as the pointer for
double poll handling, which is a bit different than the usual case
where it's strictly gated by the REQ_F_ASYNC_DATA flag. Be a bit more
proactive in handling ->async_data, and clear it to NULL as part of
regular init. Init is touching that cacheline anyway, so might as well
clear it.

Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 508c1314
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2119,6 +2119,7 @@ static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req,
	req->file = NULL;
	req->tctx = current->io_uring;
	req->cancel_seq_set = false;
	req->async_data = NULL;

	if (unlikely(opcode >= IORING_OP_LAST)) {
		req->opcode = 0;