summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/io_uring.h
diff options
context:
space:
mode:
authorJens Axboe2019-05-11 00:07:28 +0200
committerJens Axboe2019-06-24 16:00:18 +0200
commit9e645e1105ca60fbbc6bddf2fd5ef7e57ed3dca8 (patch)
tree4b035192211c7a57d57f4102ba1fa982f70c5df9 /include/uapi/linux/io_uring.h
parentio_uring: punt short reads to async context (diff)
downloadkernel-qcow2-linux-9e645e1105ca60fbbc6bddf2fd5ef7e57ed3dca8.tar.gz
kernel-qcow2-linux-9e645e1105ca60fbbc6bddf2fd5ef7e57ed3dca8.tar.xz
kernel-qcow2-linux-9e645e1105ca60fbbc6bddf2fd5ef7e57ed3dca8.zip
io_uring: add support for sqe links
With SQE links, we can create chains of dependent SQEs. One example would be queueing an SQE that's a read from one file descriptor, with the linked SQE being a write to another with the same set of buffers. An SQE link will not stall the pipeline, it'll just ensure that dependent SQEs aren't issued before the previous link has completed. Any error at submission or completion time will break the chain of SQEs. For completions, this also includes short reads or writes, as the next SQE could depend on the previous one being fully completed. Any SQE in a chain that gets canceled due to any of the above errors, will get an CQE fill with -ECANCELED as the error value. Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/uapi/linux/io_uring.h')
-rw-r--r--include/uapi/linux/io_uring.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h
index a0c460025036..10b7c45f6d57 100644
--- a/include/uapi/linux/io_uring.h
+++ b/include/uapi/linux/io_uring.h
@@ -40,6 +40,7 @@ struct io_uring_sqe {
*/
#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
+#define IOSQE_IO_LINK (1U << 2) /* links next sqe */
/*
* io_uring_setup() flags