linux-mainline/io_uring
Jens Axboe 3a08988123 io_uring/net: only retry recv bundle for a full transfer
If a shorter than assumed transfer was seen, a partial buffer will have
been filled. For that case it isn't sane to attempt to fill more into
the bundle before posting a completion, as that will cause a gap in
the received data.

Check if the iterator has hit zero and only allow to continue a bundle
operation if that is the case.

Also ensure that for putting finished buffers, only the current transfer
is accounted. Otherwise too many buffers may be put for a short transfer.

Link: https://github.com/axboe/liburing/issues/1409
Cc: stable@vger.kernel.org
Fixes: 7c71a0af81 ("io_uring/net: improve recv bundles")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2025-05-21 19:24:18 -06:00
..
advise.c
advise.h
alloc_cache.c
alloc_cache.h
cancel.c
cancel.h
epoll.c
epoll.h
eventfd.c
eventfd.h
fdinfo.c io_uring/fdinfo: grab ctx->uring_lock around io_uring_show_fdinfo() 2025-05-14 07:15:28 -06:00
fdinfo.h
filetable.c
filetable.h
fs.c
fs.h
futex.c
futex.h
io_uring.c io_uring: fix overflow resched cqe reordering 2025-05-21 07:01:54 -06:00
io_uring.h io_uring: don't pass ctx to tw add remote helper 2025-03-28 17:14:01 -06:00
io-wq.c
io-wq.h
kbuf.c io_uring/kbuf: reject zero sized provided buffers 2025-04-07 07:51:23 -06:00
kbuf.h
Kconfig io_uring: make zcrx depend on CONFIG_IO_URING 2025-03-31 07:07:44 -06:00
Makefile
memmap.c io_uring/memmap: don't use page_address() on a highmem page 2025-05-12 09:27:41 -06:00
memmap.h
msg_ring.c io_uring: don't pass ctx to tw add remote helper 2025-03-28 17:14:01 -06:00
msg_ring.h
napi.c
napi.h
net.c io_uring/net: only retry recv bundle for a full transfer 2025-05-21 19:24:18 -06:00
net.h
nop.c
nop.h
notif.c
notif.h
opdef.c for-6.15/io_uring-epoll-wait-20250325 2025-03-28 14:55:32 -07:00
opdef.h
openclose.c
openclose.h
poll.c
poll.h
refs.h io_uring: always do atomic put from iowq 2025-04-03 08:31:57 -06:00
register.c
register.h
rsrc.c io_uring/rsrc: ensure segments counts are correct on kbuf buffers 2025-04-17 11:59:12 -06:00
rsrc.h for-6.15/io_uring-rx-zc-20250325 2025-03-28 13:45:52 -07:00
rw.c for-6.15/io_uring-reg-vec-20250327 2025-03-28 15:07:04 -07:00
rw.h
slist.h
splice.c
splice.h
sqpoll.c io_uring/sqpoll: Increase task_work submission batch size 2025-05-09 07:56:53 -06:00
sqpoll.h
statx.c
statx.h
sync.c
sync.h
tctx.c
tctx.h
timeout.c for-6.15/io_uring-20250322 2025-03-26 17:56:00 -07:00
timeout.h
truncate.c
truncate.h
uring_cmd.c io_uring/uring_cmd: fix hybrid polling initialization issue 2025-05-12 07:17:02 -06:00
uring_cmd.h io_uring/cmd: axe duplicate io_uring_cmd_import_fixed_vec() declaration 2025-05-20 14:36:41 -06:00
waitid.c
waitid.h
xattr.c
xattr.h
zcrx.c io_uring/zcrx: fix late dma unmap for a dead dev 2025-04-18 06:12:10 -06:00
zcrx.h io_uring/zcrx: fix late dma unmap for a dead dev 2025-04-18 06:12:10 -06:00