OSDN Git Service

nvme: set REQ_ALLOC_CACHE for uring-passthru request
authorAnuj Gupta <anuj20.g@samsung.com>
Tue, 17 Jan 2023 12:06:37 +0000 (17:36 +0530)
committerJens Axboe <axboe@kernel.dk>
Sun, 29 Jan 2023 22:18:34 +0000 (15:18 -0700)
This patch sets REQ_ALLOC_CACHE flag for uring-passthru requests.
This is a prep-patch so that normal / IRQ-driven uring-passthru
I/Os can also leverage bio-cache.

Signed-off-by: Anuj Gupta <anuj20.g@samsung.com>
Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
Link: https://lore.kernel.org/r/20230117120638.72254-2-anuj20.g@samsung.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/host/ioctl.c

index 06f52db..ffaabf1 100644 (file)
@@ -554,7 +554,7 @@ static int nvme_uring_cmd_io(struct nvme_ctrl *ctrl, struct nvme_ns *ns,
        struct nvme_uring_data d;
        struct nvme_command c;
        struct request *req;
-       blk_opf_t rq_flags = 0;
+       blk_opf_t rq_flags = REQ_ALLOC_CACHE;
        blk_mq_req_flags_t blk_flags = 0;
        void *meta = NULL;
        int ret;
@@ -590,7 +590,7 @@ static int nvme_uring_cmd_io(struct nvme_ctrl *ctrl, struct nvme_ns *ns,
        d.timeout_ms = READ_ONCE(cmd->timeout_ms);
 
        if (issue_flags & IO_URING_F_NONBLOCK) {
-               rq_flags = REQ_NOWAIT;
+               rq_flags |= REQ_NOWAIT;
                blk_flags = BLK_MQ_REQ_NOWAIT;
        }
        if (issue_flags & IO_URING_F_IOPOLL)