io_uring/cmd: Pass compat mode in issue_flags
authorBreno Leitao <leitao@debian.org>
Mon, 16 Oct 2023 13:47:43 +0000 (06:47 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 19 Oct 2023 22:42:03 +0000 (16:42 -0600)
Create a new flag to track if the operation is running compat mode.
This basically check the context->compat and pass it to the issue_flags,
so, it could be queried later in the callbacks.

Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
Link: https://lore.kernel.org/r/20231016134750.1381153-6-leitao@debian.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/io_uring.h
io_uring/uring_cmd.c

index b4391e0a9bc8363200f9b4013193fc4e75ce1d6e..aefb73eeeebff47933c75bc626bc8b06d0e29880 100644 (file)
@@ -23,6 +23,7 @@ enum io_uring_cmd_flags {
 
        /* set when uring wants to cancel a previously issued command */
        IO_URING_F_CANCEL               = (1 << 11),
+       IO_URING_F_COMPAT               = (1 << 12),
 };
 
 /* only top 8 bits of sqe->uring_cmd_flags for kernel internal use */
index 00a5e5621a288adb9e0ed6bf6f8a9de4538cb987..4bedd633c08c9496d85bcea785924615072b9a0d 100644 (file)
@@ -175,6 +175,8 @@ int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags)
                issue_flags |= IO_URING_F_SQE128;
        if (ctx->flags & IORING_SETUP_CQE32)
                issue_flags |= IO_URING_F_CQE32;
+       if (ctx->compat)
+               issue_flags |= IO_URING_F_COMPAT;
        if (ctx->flags & IORING_SETUP_IOPOLL) {
                if (!file->f_op->uring_cmd_iopoll)
                        return -EOPNOTSUPP;