summaryrefslogtreecommitdiffstats
path: root/io_uring/net.c
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2022-08-24 14:07:39 +0200
committerJens Axboe <axboe@kernel.dk>2022-08-24 16:57:00 +0200
commit5a848b7c9e5e4d94390fbc391ccb81d40f3ccfb5 (patch)
tree1f96df48fb36297a2225c8ec25a05862301b6b76 /io_uring/net.c
parentio_uring/net: fix must_hold annotation (diff)
downloadlinux-5a848b7c9e5e4d94390fbc391ccb81d40f3ccfb5.tar.xz
linux-5a848b7c9e5e4d94390fbc391ccb81d40f3ccfb5.zip
io_uring/net: fix zc send link failing
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>
Diffstat (limited to 'io_uring/net.c')
-rw-r--r--io_uring/net.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/io_uring/net.c b/io_uring/net.c
index f8cdf1dc3863..d6310c655a0f 100644
--- a/io_uring/net.c
+++ b/io_uring/net.c
@@ -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);
}