diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2022-08-24 14:07:39 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-08-24 16:57:00 +0200 |
commit | 5a848b7c9e5e4d94390fbc391ccb81d40f3ccfb5 (patch) | |
tree | 1f96df48fb36297a2225c8ec25a05862301b6b76 /io_uring/net.c | |
parent | io_uring/net: fix must_hold annotation (diff) | |
download | linux-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.c | 1 |
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); } |