• Jens Axboe's avatar
    io_uring: ensure we clear io_kiocb->result before each issue · 6873e0bd
    Jens Axboe authored
    We use io_kiocb->result == -EAGAIN as a way to know if we need to
    re-submit a polled request, as -EAGAIN reporting happens out-of-line
    for IO submission failures. This field is cleared when we originally
    allocate the request, but it isn't reset when we retry the submission
    from async context. This can cause issues where we think something
    needs a re-issue, but we're really just reading stale data.
    
    Reset ->result whenever we re-prep a request for polled submission.
    
    Cc: stable@vger.kernel.org
    Fixes: 9e645e11 ("io_uring: add support for sqe links")
    Reported-by: default avatarBijan Mottahedeh <bijan.mottahedeh@oracle.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    6873e0bd
io_uring.c 95.7 KB