• Jens Axboe's avatar
    io_uring: add support for IORING_REGISTER_FILES_UPDATE · c3a31e60
    Jens Axboe authored
    Allows the application to remove/replace/add files to/from a file set.
    Passes in a struct:
    
    struct io_uring_files_update {
    	__u32 offset;
    	__s32 *fds;
    };
    
    that holds an array of fds, size of array passed in through the usual
    nr_args part of the io_uring_register() system call. The logic is as
    follows:
    
    1) If ->fds[i] is -1, the existing file at i + ->offset is removed from
       the set.
    2) If ->fds[i] is a valid fd, the existing file at i + ->offset is
       replaced with ->fds[i].
    
    For case #2, is the existing file is currently empty (fd == -1), the
    new fd is simply added to the array.
    Reviewed-by: default avatarJeff Moyer <jmoyer@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    c3a31e60
io_uring.c 102 KB