io_uring/net: fix zc send link failing
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 24 Aug 2022 12:07:39 +0000 (13:07 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 Aug 2022 14:57:00 +0000 (08:57 -0600)
Failed requests should be marked with req_set_fail(), so links and cqe
skipping work correctly, which is missing in io_sendzc(). Note,
io_sendzc() return IOU_OK on failure, so the core code won't do the
cleanup for us.

Fixes: 06a5464be84e4 ("io_uring: wire send zc request type")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/e47d46fda9db30154ce66a549bb0d3380b780520.1661342812.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/net.c

index f8cdf1dc3863be57a5a94211287220086f9d7384..d6310c655a0f6af710fe62b962133be308d51f9b 100644 (file)
@@ -1023,6 +1023,7 @@ int io_sendzc(struct io_kiocb *req, unsigned int issue_flags)
                }
                if (ret == -ERESTARTSYS)
                        ret = -EINTR;
+               req_set_fail(req);
        } else if (zc->flags & IORING_RECVSEND_NOTIF_FLUSH) {
                io_notif_slot_flush_submit(notif_slot, 0);
        }