summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Krisman Bertazi <krisman@suse.de>2026-09-02 20:00:40 -0300
committerJens Axboe <axboe@kernel.dk>2026-09-08 19:18:46 -0600
commitdcbd1c054848848a1937ca0768ce2bdbc31ae621 (patch)
tree45e3e6d0ad91ee7c0cc1f2d343147a56a03e0f4c
parent796aa0547557e63338657ed1c487906f9fac4c73 (diff)
downloadlinux-next-dcbd1c054848848a1937ca0768ce2bdbc31ae621.tar.gz
linux-next-dcbd1c054848848a1937ca0768ce2bdbc31ae621.zip
io_uring/net: let io_recv_buf_select return the length of the buffer region
In preparation to using this field as an upper limit to truncation, return the size of the allocated region. Fixes: ae98dbf43d75 ("io_uring/kbuf: add support for incremental buffer consumption") Cc: stable@vger.kernel.org Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de> Link: https://patch.msgid.link/20260902230041.1320658-2-krisman@suse.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--io_uring/net.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/io_uring/net.c b/io_uring/net.c
index fbe719d86c46..647156c9331a 100644
--- a/io_uring/net.c
+++ b/io_uring/net.c
@@ -1108,6 +1108,7 @@ static int io_recv_buf_select(struct io_kiocb *req, struct io_async_msghdr *kmsg
struct io_br_sel *sel, unsigned int issue_flags)
{
struct io_sr_msg *sr = io_kiocb_to_cmd(req, struct io_sr_msg);
+ size_t len;
int ret;
/*
@@ -1153,13 +1154,14 @@ static int io_recv_buf_select(struct io_kiocb *req, struct io_async_msghdr *kmsg
/* special case 1 vec, can be a fast path */
if (ret == 1) {
sr->buf = arg.iovs[0].iov_base;
- sr->len = arg.iovs[0].iov_len;
+ len = sr->len = arg.iovs[0].iov_len;
goto map_ubuf;
}
iov_iter_init(&kmsg->msg.msg_iter, ITER_DEST, arg.iovs, ret,
- arg.out_len);
+ arg.out_len);
+ len = arg.out_len;
} else {
- size_t len = sel->val;
+ len = sel->val;
*sel = io_buffer_select(req, &len, sr->buf_group, issue_flags);
if (!sel->addr)
@@ -1173,7 +1175,7 @@ map_ubuf:
return ret;
}
- return 0;
+ return len;
}
int io_recv(struct io_kiocb *req, unsigned int issue_flags)