aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2025-11-10 13:03:53 +0000
committerJens Axboe <axboe@kernel.dk>2025-11-10 14:59:35 -0700
commit6a77267d97b5b6cd0e35099ab4eb054e5f965ee6 (patch)
tree195cc317941a22c42285332637222066401b1ae7
parentd3c9c213c0b86ac5dd8fe2c53c24db20f1f510bc (diff)
downloadlinux-6a77267d97b5b6cd0e35099ab4eb054e5f965ee6.tar.gz
io_uring/query: return number of available queries
It's useful to know which query opcodes are available. Extend the structure and return that. It's a trivial change, and even though it can be painlessly extended later, it'd still require adding a v2 of the structure. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--include/uapi/linux/io_uring/query.h3
-rw-r--r--io_uring/query.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/include/uapi/linux/io_uring/query.h b/include/uapi/linux/io_uring/query.h
index 5d754322a27c80..3539ccbfd0644c 100644
--- a/include/uapi/linux/io_uring/query.h
+++ b/include/uapi/linux/io_uring/query.h
@@ -36,6 +36,9 @@ struct io_uring_query_opcode {
__u64 enter_flags;
/* Bitmask of all supported IOSQE_* flags */
__u64 sqe_flags;
+ /* The number of available query opcodes */
+ __u32 nr_query_opcodes;
+ __u32 __pad;
};
#endif
diff --git a/io_uring/query.c b/io_uring/query.c
index 645301bd2c8293..cf02893ba911b6 100644
--- a/io_uring/query.c
+++ b/io_uring/query.c
@@ -20,6 +20,8 @@ static ssize_t io_query_ops(void *data)
e->ring_setup_flags = IORING_SETUP_FLAGS;
e->enter_flags = IORING_ENTER_FLAGS;
e->sqe_flags = SQE_VALID_FLAGS;
+ e->nr_query_opcodes = __IO_URING_QUERY_MAX;
+ e->__pad = 0;
return sizeof(*e);
}