• Jens Axboe's avatar
    io_uring: move reissue into regular IO path · 230d50d4
    Jens Axboe authored
    It's non-obvious how retry is done for block backed files, when it happens
    off the kiocb done path. It also makes it tricky to deal with the iov_iter
    handling.
    
    Just mark the req as needing a reissue, and handling it from the
    submission path instead. This makes it directly obvious that we're not
    re-importing the iovec from userspace past the submit point, and it means
    that we can just reuse our usual -EAGAIN retry path from the read/write
    handling.
    
    At some point in the future, we'll gain the ability to always reliably
    return -EAGAIN through the stack. A previous attempt on the block side
    didn't pan out and got reverted, hence the need to check for this
    information out-of-band right now.
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    230d50d4
io_uring.c 242 KB