[PATCH 15/15] io_uring: issue IOSQE_ASYNC requests inline when a handoff is possible
From: Jens Axboe
Date: Fri Sep 11 2026 - 11:53:59 EST
NOTE: undecided if this should be the behavior.
Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>
---
include/linux/io_uring_types.h | 3 ---
io_uring/io_uring.c | 5 -----
2 files changed, 8 deletions(-)
diff --git a/include/linux/io_uring_types.h b/include/linux/io_uring_types.h
index 37c56ad37e05..dadbe3655138 100644
--- a/include/linux/io_uring_types.h
+++ b/include/linux/io_uring_types.h
@@ -651,7 +651,6 @@ enum {
REQ_F_IMPORT_BUFFER_BIT,
REQ_F_SQE_COPIED_BIT,
REQ_F_IOPOLL_BIT,
- REQ_F_ASYNC_USER_BIT,
REQ_F_HANDOFF_BIT,
/* not a real bit, just to check we're not overflowing the space */
@@ -748,8 +747,6 @@ enum {
REQ_F_SQE_COPIED = IO_REQ_FLAG(REQ_F_SQE_COPIED_BIT),
/* request must be iopolled to completion (set in ->issue()) */
REQ_F_IOPOLL = IO_REQ_FLAG(REQ_F_IOPOLL_BIT),
- /* IOSQE_ASYNC was set on the SQE, not just by prep */
- REQ_F_ASYNC_USER = IO_REQ_FLAG(REQ_F_ASYNC_USER_BIT),
/* vetted at submit for an inline blocking issue with a handoff */
REQ_F_HANDOFF = IO_REQ_FLAG(REQ_F_HANDOFF_BIT),
};
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 7c2aa0cfacc8..04e2fbdcb3dd 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -1771,8 +1771,6 @@ static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req,
/* same numerical values with corresponding REQ_F_*, safe to copy */
sqe_flags = READ_ONCE(sqe->flags);
req->flags = (__force io_req_flags_t) sqe_flags;
- if (sqe_flags & IOSQE_ASYNC)
- req->flags |= REQ_F_ASYNC_USER;
req->cqe.user_data = READ_ONCE(sqe->user_data);
req->file = NULL;
req->tctx = current->io_uring;
@@ -1919,9 +1917,6 @@ static bool io_req_force_async(struct io_kiocb *req)
return true;
if (!(req->flags & REQ_F_FORCE_ASYNC))
return false;
- /* userspace asked for it, keep the explicit offload */
- if (req->flags & REQ_F_ASYNC_USER)
- return true;
if (req->ctx->int_flags & IO_RING_F_DRAIN_ACTIVE)
return true;
/* the file decides on pollability, resolve it now if fixed */
--
2.55.0