• Jens Axboe's avatar
    io_uring: use fget/fput consistently · 73363c26
    Jens Axboe authored
    Normally within a syscall it's fine to use fdget/fdput for grabbing a
    file from the file table, and it's fine within io_uring as well. We do
    that via io_uring_enter(2), io_uring_register(2), and then also for
    cancel which is invoked from the latter. io_uring cannot close its own
    file descriptors as that is explicitly rejected, and for the cancel
    side of things, the file itself is just used as a lookup cookie.
    
    However, it is more prudent to ensure that full references are always
    grabbed. For anything threaded, either explicitly in the application
    itself or through use of the io-wq worker threads, this is what happens
    anyway. Generalize it and use fget/fput throughout.
    
    Also see the below link for more details.
    
    Link: https://lore.kernel.org/io-uring/CAG48ez1htVSO3TqmrF8QcX2WFuYTRM-VZ_N10i-VZgbtg=NNqw@mail.gmail.com/Suggested-by: default avatarJann Horn <jannh@google.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    73363c26
cancel.c 8.08 KB