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>
Mon, 1 Jun 2020 16:00:40 +0000 (10:00 -0600)
commit35da8043f28190388157e212f8bb63a41191f1a1
tree96f18bf357917d0fa6813fbc0334c1dcc6ae20d1
parent460d588239c0dda7dbdce3e617698c6ad2628e20
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