Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'io_uring-6.17-20250822' of git://git.kernel.dk/linux

Pull io_uring fixes from Jens Axboe:
"Just two small fixes - one that fixes inconsistent ->async_data vs
REQ_F_ASYNC_DATA handling in futex, and a followup that just ensures
that if other opcode handlers mess this up, it won't cause any issues"

* tag 'io_uring-6.17-20250822' of git://git.kernel.dk/linux:
io_uring: clear ->async_data as part of normal init
io_uring/futex: ensure io_futex_wait() cleans up properly on failure

+4
+3
io_uring/futex.c
··· 288 288 goto done_unlock; 289 289 } 290 290 291 + req->flags |= REQ_F_ASYNC_DATA; 291 292 req->async_data = ifd; 292 293 ifd->q = futex_q_init; 293 294 ifd->q.bitset = iof->futex_mask; ··· 310 309 if (ret < 0) 311 310 req_set_fail(req); 312 311 io_req_set_res(req, ret, 0); 312 + req->async_data = NULL; 313 + req->flags &= ~REQ_F_ASYNC_DATA; 313 314 kfree(ifd); 314 315 return IOU_COMPLETE; 315 316 }
+1
io_uring/io_uring.c
··· 2119 2119 req->file = NULL; 2120 2120 req->tctx = current->io_uring; 2121 2121 req->cancel_seq_set = false; 2122 + req->async_data = NULL; 2122 2123 2123 2124 if (unlikely(opcode >= IORING_OP_LAST)) { 2124 2125 req->opcode = 0;