• Jens Axboe's avatar
    io_uring: use fget/fput_many() for file references · 9a56a232
    Jens Axboe authored
    Add a separate io_submit_state structure, to cache some of the things
    we need for IO submission.
    
    One such example is file reference batching. io_submit_state. We get as
    many references as the number of sqes we are submitting, and drop
    unused ones if we end up switching files. The assumption here is that
    we're usually only dealing with one fd, and if there are multiple,
    hopefuly they are at least somewhat ordered. Could trivially be extended
    to cover multiple fds, if needed.
    
    On the completion side we do the same thing, except this is trivially
    done just locally in io_iopoll_reap().
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    9a56a232
io_uring.c 38.5 KB