• Jens Axboe's avatar
    io_uring: disallow close of ring itself · fd2206e4
    Jens Axboe authored
    A previous commit enabled this functionality, which also enabled O_PATH
    to work correctly with io_uring. But we can't safely close the ring
    itself, as the file handle isn't reference counted inside
    io_uring_enter(). Instead of jumping through hoops to enable ring
    closure, add a "soft" ->needs_file option, ->needs_file_no_error. This
    enables O_PATH file descriptors to work, but still catches the case of
    trying to close the ring itself.
    Reported-by: default avatarJann Horn <jannh@google.com>
    Fixes: 904fbcb1 ("io_uring: remove 'fd is io_uring' from close path")
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    fd2206e4
io_uring.c 192 KB