]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: don't use retry based buffered reads for non-async bdev
authorJens Axboe <axboe@kernel.dk>
Mon, 14 Sep 2020 15:30:38 +0000 (09:30 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 21 Sep 2020 13:50:56 +0000 (07:50 -0600)
commit0d317a601a25cd833d3884f2d186d0d0042772fa
treea54a7b2a1818cfb0b2996d6683a2d8620b17113a
parente93997cf04d296929aec391c59c295106d64dca8
io_uring: don't use retry based buffered reads for non-async bdev

Some block devices, like dm, bubble back -EAGAIN through the completion
handler. We check for this in io_read(), but don't honor it for when
we have copied the iov. Return -EAGAIN for this case before retrying,
to force punt to io-wq.

Fixes: 92ba2ff33807 ("io_uring: support true async buffered reads, if file provides it")
Reported-by: Zorro Lang <zlang@redhat.com>
Tested-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c