io_uring: catch -EIO from buffered issue request failure
authorJens Axboe <axboe@kernel.dk>
Mon, 1 Jun 2020 16:00:27 +0000 (10:00 -0600)
committerJens Axboe <axboe@kernel.dk>
Thu, 18 Jun 2020 15:38:00 +0000 (09:38 -0600)
commit3248c49f25a3de44cf8e5affc239d117f926674c
tree55c5da64335a618b87c2dd185e739c3f75f68265
parent5ff6c315bcc0104e5145138074b446ea578f0aa2
io_uring: catch -EIO from buffered issue request failure

-EIO bubbles up like -EAGAIN if we fail to allocate a request at the
lower level. Play it safe and treat it like -EAGAIN in terms of sync
retry, to avoid passing back an errant -EIO.

Catch some of these early for block based file, as non-mq devices
generally do not support NOWAIT. That saves us some overhead by
not first trying, then retrying from async context. We can go straight
to async punt instead.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c