• Jens Axboe's avatar
    io_uring: allow unbreakable links · 4e88d6e7
    Jens Axboe authored
    Some commands will invariably end in a failure in the sense that the
    completion result will be less than zero. One such example is timeouts
    that don't have a completion count set, they will always complete with
    -ETIME unless cancelled.
    
    For linked commands, we sever links and fail the rest of the chain if
    the result is less than zero. Since we have commands where we know that
    will happen, add IOSQE_IO_HARDLINK as a stronger link that doesn't sever
    regardless of the completion result. Note that the link will still sever
    if we fail submitting the parent request, hard links are only resilient
    in the presence of completion results for requests that did submit
    correctly.
    
    Cc: stable@vger.kernel.org # v5.4
    Reviewed-by: default avatarPavel Begunkov <asml.silence@gmail.com>
    Reported-by: default avatar李通洲 <carter.li@eoitek.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    4e88d6e7
io_uring.c 125 KB