• Jens Axboe's avatar
    io_uring/rw: cleanup io_rw_done() · fe80eb15
    Jens Axboe authored
    This originally came from the aio side, and it's laid out rather oddly.
    The common case here is that we either get -EIOCBQUEUED from submitting
    an async request, or that we complete the request correctly with the
    given number of bytes. Handling the odd internal restart error codes
    is not a common operation.
    
    Lay it out a bit more optimally that better explains the normal flow,
    and switch to avoiding the indirect call completely as this is our
    kiocb and we know the completion handler can only be one of two
    possible variants. While at it, move it to where it belongs in the
    file, with fellow end IO helpers.
    
    Outside of being easier to read, this also reduces the text size of the
    function by 24 bytes for me on arm64.
    Reviewed-by: default avatarKeith Busch <kbusch@kernel.org>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    fe80eb15
rw.c 29.7 KB