• Jens Axboe's avatar
    io_uring: only assign io_uring_enter() SQPOLL error in actual error case · 21f96522
    Jens Axboe authored
    If an SQPOLL based ring is newly created and an application issues an
    io_uring_enter(2) system call on it, then we can return a spurious
    -EOWNERDEAD error. This happens because there's nothing to submit, and
    if the caller doesn't specify any other action, the initial error
    assignment of -EOWNERDEAD never gets overwritten. This causes us to
    return it directly, even if it isn't valid.
    
    Move the error assignment into the actual failure case instead.
    
    Cc: stable@vger.kernel.org
    Fixes: d9d05217 ("io_uring: stop SQPOLL submit on creator's death")
    Reported-by: Sherlock Holo sherlockya@gmail.com
    Link: https://github.com/axboe/liburing/issues/413Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    21f96522
io_uring.c 253 KB