OSDN Git Service

io_uring: don't clear req->kbuf when buffer selection is done
authorJens Axboe <axboe@kernel.dk>
Sun, 1 May 2022 18:31:56 +0000 (12:31 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 9 May 2022 12:29:06 +0000 (06:29 -0600)
It's not needed as the REQ_F_BUFFER_SELECTED flag tracks the state of
whether or not kbuf is valid, so just drop it.

Suggested-by: Dylan Yudaken <dylany@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 5264159..22699cb 100644 (file)
@@ -1463,7 +1463,6 @@ static unsigned int __io_put_kbuf(struct io_kiocb *req, struct list_head *list)
 {
        req->flags &= ~REQ_F_BUFFER_SELECTED;
        list_add(&req->kbuf->list, list);
-       req->kbuf = NULL;
 
        return IORING_CQE_F_BUFFER | (req->buf_index << IORING_CQE_BUFFER_SHIFT);
 }
@@ -1540,7 +1539,6 @@ static void io_kbuf_recycle(struct io_kiocb *req, unsigned issue_flags)
        list_add(&buf->list, &bl->buf_list);
        req->flags &= ~REQ_F_BUFFER_SELECTED;
        req->buf_index = buf->bgid;
-       req->kbuf = NULL;
 
        io_ring_submit_unlock(ctx, issue_flags);
 }