Message ID | 20220628150228.1379645-3-dylany@fb.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | io_uring: multishot recv | expand |
On 6/28/22 9:02 AM, Dylan Yudaken wrote: > Attempt to restore bgid. This is needed when recycling unused buffers as > the next time around it will want the correct bgid. > > Signed-off-by: Dylan Yudaken <dylany@fb.com> > --- > io_uring/kbuf.h | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/io_uring/kbuf.h b/io_uring/kbuf.h > index 3d48f1ab5439..c64f02ea1c30 100644 > --- a/io_uring/kbuf.h > +++ b/io_uring/kbuf.h > @@ -96,16 +96,20 @@ static inline void io_kbuf_recycle(struct io_kiocb *req, unsigned issue_flags) > static inline unsigned int __io_put_kbuf_list(struct io_kiocb *req, > struct list_head *list) > { > + unsigned int ret = IORING_CQE_F_BUFFER | (req->buf_index << IORING_CQE_BUFFER_SHIFT); > if (req->flags & REQ_F_BUFFER_RING) { Should have a newline here after the 'ret' variable declaration.
diff --git a/io_uring/kbuf.h b/io_uring/kbuf.h index 3d48f1ab5439..c64f02ea1c30 100644 --- a/io_uring/kbuf.h +++ b/io_uring/kbuf.h @@ -96,16 +96,20 @@ static inline void io_kbuf_recycle(struct io_kiocb *req, unsigned issue_flags) static inline unsigned int __io_put_kbuf_list(struct io_kiocb *req, struct list_head *list) { + unsigned int ret = IORING_CQE_F_BUFFER | (req->buf_index << IORING_CQE_BUFFER_SHIFT); if (req->flags & REQ_F_BUFFER_RING) { - if (req->buf_list) + if (req->buf_list) { + req->buf_index = req->buf_list->bgid; req->buf_list->head++; + } req->flags &= ~REQ_F_BUFFER_RING; } else { + req->buf_index = req->kbuf->bgid; list_add(&req->kbuf->list, list); req->flags &= ~REQ_F_BUFFER_SELECTED; } - return IORING_CQE_F_BUFFER | (req->buf_index << IORING_CQE_BUFFER_SHIFT); + return ret; } static inline unsigned int io_put_kbuf_comp(struct io_kiocb *req)
Attempt to restore bgid. This is needed when recycling unused buffers as the next time around it will want the correct bgid. Signed-off-by: Dylan Yudaken <dylany@fb.com> --- io_uring/kbuf.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)