Loading io_uring/kbuf.c +6 −3 Original line number Diff line number Diff line Loading @@ -218,10 +218,13 @@ static int io_ring_buffers_peek(struct io_kiocb *req, struct buf_sel_arg *arg, buf = io_ring_head_to_buf(br, head, bl->mask); if (arg->max_len) { int needed; u32 len = READ_ONCE(buf->len); size_t needed; needed = (arg->max_len + buf->len - 1) / buf->len; needed = min(needed, PEEK_MAX_IMPORT); if (unlikely(!len)) return -ENOBUFS; needed = (arg->max_len + len - 1) / len; needed = min_not_zero(needed, (size_t) PEEK_MAX_IMPORT); if (nr_avail > needed) nr_avail = needed; } Loading Loading
io_uring/kbuf.c +6 −3 Original line number Diff line number Diff line Loading @@ -218,10 +218,13 @@ static int io_ring_buffers_peek(struct io_kiocb *req, struct buf_sel_arg *arg, buf = io_ring_head_to_buf(br, head, bl->mask); if (arg->max_len) { int needed; u32 len = READ_ONCE(buf->len); size_t needed; needed = (arg->max_len + buf->len - 1) / buf->len; needed = min(needed, PEEK_MAX_IMPORT); if (unlikely(!len)) return -ENOBUFS; needed = (arg->max_len + len - 1) / len; needed = min_not_zero(needed, (size_t) PEEK_MAX_IMPORT); if (nr_avail > needed) nr_avail = needed; } Loading