]> www.infradead.org Git - linux.git/commitdiff
io_uring: expose read/write attribute capability
authorAnuj Gupta <anuj20.g@samsung.com>
Thu, 5 Dec 2024 06:21:09 +0000 (11:51 +0530)
committerJens Axboe <axboe@kernel.dk>
Sat, 11 Jan 2025 00:12:42 +0000 (17:12 -0700)
After commit 9a213d3b80c0, we can pass additional attributes along with
read/write. However, userspace doesn't know that. Add a new feature flag
IORING_FEAT_RW_ATTR, to notify the userspace that the kernel has this
ability.

Signed-off-by: Anuj Gupta <anuj20.g@samsung.com>
Reviewed-by: Li Zetao <lizetao1@huawei.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Tested-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/20241205062109.1788-1-anuj20.g@samsung.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/uapi/linux/io_uring.h
io_uring/io_uring.c

index 38f0d6b10eaf74931e7f4042cc1204ea3413c7df..e11c826385277c11bf8c90cd94c4af5f9e6c1105 100644 (file)
@@ -577,6 +577,7 @@ struct io_uring_params {
 #define IORING_FEAT_REG_REG_RING       (1U << 13)
 #define IORING_FEAT_RECVSEND_BUNDLE    (1U << 14)
 #define IORING_FEAT_MIN_TIMEOUT                (1U << 15)
+#define IORING_FEAT_RW_ATTR            (1U << 16)
 
 /*
  * io_uring_register(2) opcodes and arguments
index 92ba2fdcd0878ec20098de46018cedc94061de75..af03e9973b5871b12cde32654a5212b59d40fd28 100644 (file)
@@ -3713,7 +3713,8 @@ static __cold int io_uring_create(unsigned entries, struct io_uring_params *p,
                        IORING_FEAT_EXT_ARG | IORING_FEAT_NATIVE_WORKERS |
                        IORING_FEAT_RSRC_TAGS | IORING_FEAT_CQE_SKIP |
                        IORING_FEAT_LINKED_FILE | IORING_FEAT_REG_REG_RING |
-                       IORING_FEAT_RECVSEND_BUNDLE | IORING_FEAT_MIN_TIMEOUT;
+                       IORING_FEAT_RECVSEND_BUNDLE | IORING_FEAT_MIN_TIMEOUT |
+                       IORING_FEAT_RW_ATTR;
 
        if (copy_to_user(params, p, sizeof(*p))) {
                ret = -EFAULT;