Revert "io_uring/rw: drop -EOPNOTSUPP check in __io_complete_rw_common()"
This reverts commitpull/1354/merge90bfb28d5f. Kevin reports that this commit causes an issue for him with LVM snapshots, most likely because of turning off NOWAIT support while a snapshot is being created. This makes -EOPNOTSUPP bubble back through the completion handler, where io_uring read/write handling should just retry it. Reinstate the previous check removed by the referenced commit. Cc: stable@vger.kernel.org Fixes:90bfb28d5f("io_uring/rw: drop -EOPNOTSUPP check in __io_complete_rw_common()") Reported-by: Salvatore Bonaccorso <carnil@debian.org> Reported-by: Kevin Lumik <kevin@xf.ee> Link: https://lore.kernel.org/io-uring/cceb723c-051b-4de2-9a4c-4aa82e1619ee@kernel.dk/ Signed-off-by: Jens Axboe <axboe@kernel.dk>
parent
3a86608788
commit
927069c4ac
|
|
@ -542,7 +542,7 @@ static void __io_complete_rw_common(struct io_kiocb *req, long res)
|
|||
{
|
||||
if (res == req->cqe.res)
|
||||
return;
|
||||
if (res == -EAGAIN && io_rw_should_reissue(req)) {
|
||||
if ((res == -EOPNOTSUPP || res == -EAGAIN) && io_rw_should_reissue(req)) {
|
||||
req->flags |= REQ_F_REISSUE | REQ_F_BL_NO_RECYCLE;
|
||||
} else {
|
||||
req_set_fail(req);
|
||||
|
|
|
|||
Loading…
Reference in New Issue