path: root/man/io_uring_prep_openat2.3
diff options
authorJens Axboe <>2022-03-14 17:01:23 -0600
committerJens Axboe <>2022-03-14 17:01:23 -0600
commitaba7b1552c91b8ba3857f44e65e1fed08b9dbe7c (patch)
treebfd0535ca8406405ff761a624c6fb9743a58cdb5 /man/io_uring_prep_openat2.3
parent60340cbc0ee6e07fd408c265b7a21901527c0f9e (diff)
man: make mention of how direct file descriptors request an existing table
Using direct opens/accepts requires that a file descriptor table already be registered with sparse slots, so that direct opens/accepts can just overwrite them. Signed-off-by: Jens Axboe <>
Diffstat (limited to 'man/io_uring_prep_openat2.3')
1 files changed, 9 insertions, 0 deletions
diff --git a/man/io_uring_prep_openat2.3 b/man/io_uring_prep_openat2.3
index f87d49b..672fd7c 100644
--- a/man/io_uring_prep_openat2.3
+++ b/man/io_uring_prep_openat2.3
@@ -54,6 +54,15 @@ member, and the SQE
field should use the direct descriptor value rather than the regular file
descriptor. Direct descriptors are managed like registered files.
+If the direct variant is used, the application must first have registered
+a sparse file table using
+.BR io_uring_register_files (3)
+of the appropriate size. A sparse table is one where each element is first
+registered with a value of
+.B -1.
+Once registered, a direct open request may use any sparse entry in that
+table, as long as it is within the size of the registered table.
This function prepares an async
.BR openat2 (2)
request. See that man page for details.