• Jens Axboe's avatar
    io_uring/openclose: add support for IORING_OP_FIXED_FD_INSTALL · dc18b89a
    Jens Axboe authored
    io_uring can currently open/close regular files or fixed/direct
    descriptors. Or you can instantiate a fixed descriptor from a regular
    one, and then close the regular descriptor. But you currently can't turn
    a purely fixed/direct descriptor into a regular file descriptor.
    
    IORING_OP_FIXED_FD_INSTALL adds support for installing a direct
    descriptor into the normal file table, just like receiving a file
    descriptor or opening a new file would do. This is all nicely abstracted
    into receive_fd(), and hence adding support for this is truly trivial.
    
    Since direct descriptors are only usable within io_uring itself, it can
    be useful to turn them into real file descriptors if they ever need to
    be accessed via normal syscalls. This can either be a transitory thing,
    or just a permanent transition for a given direct descriptor.
    
    By default, new fds are installed with O_CLOEXEC set. The application
    can disable O_CLOEXEC by setting IORING_FIXED_FD_NO_CLOEXEC in the
    sqe->install_fd_flags member.
    Suggested-by: default avatarChristian Brauner <brauner@kernel.org>
    Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    dc18b89a
openclose.h 754 Bytes