diff options
| author | Jens Axboe <axboe@kernel.dk> | 2025-05-21 18:51:49 -0600 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-07-06 11:01:48 +0200 |
| commit | 0c07f2bf49f268836173a2fabcbe4b5f9995220d (patch) | |
| tree | 8dd2e5a0fdc4232504c9fc99f46234cd519f21e7 /include/net/aligned_data.h | |
| parent | 399214d70304acba4068ae203534a122d7faa792 (diff) | |
io_uring/net: only retry recv bundle for a full transfer
Commit 3a08988123c868dbfdd054541b1090fb891fa49e upstream.
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: 7c71a0af81ba ("io_uring/net: improve recv bundles")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/net/aligned_data.h')
0 files changed, 0 insertions, 0 deletions
