nvme: factor out a add nvme_is_write helper
authorChristoph Hellwig <hch@lst.de>
Mon, 6 Jun 2016 21:20:49 +0000 (23:20 +0200)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 1 Jun 2017 20:41:34 +0000 (13:41 -0700)
Centralize the check if a given NVMe command reads or writes data.

Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Jay Freyensee <james.p.freyensee@intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 7a5abb4b48570c3552e33ff4c72ae1e8dac3ba15)

Orabug: 25130845

Signed-off-by: Ashok Vairavan <ashok.vairavan@oracle.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/nvme/host/core.c
include/linux/nvme.h

index bd1acb8d0e6bc42ca664e1877d7df81a592a33a5..bf1dc395380454f7e7b032635f240a7f37528f0e 100644 (file)
@@ -195,10 +195,9 @@ EXPORT_SYMBOL_GPL(nvme_requeue_req);
 struct request *nvme_alloc_request(struct request_queue *q,
                struct nvme_command *cmd, unsigned int flags)
 {
-       bool write = cmd->common.opcode & 1;
        struct request *req;
 
-       req = blk_mq_alloc_request(q, write, GFP_ATOMIC, 0);
+       req = blk_mq_alloc_request(q, nvme_is_write(cmd), GFP_ATOMIC, 0);
        if (IS_ERR(req))
                return req;
 
@@ -363,7 +362,7 @@ int __nvme_submit_user_cmd(struct request_queue *q, struct nvme_command *cmd,
                void __user *meta_buffer, unsigned meta_len, u32 meta_seed,
                u32 *result, unsigned timeout)
 {
-       bool write = cmd->common.opcode & 1;
+       bool write = nvme_is_write(cmd);
        struct nvme_completion cqe;
        struct nvme_ns *ns = q->queuedata;
        struct gendisk *disk = ns ? ns->disk : NULL;
index 2b82f05fe4ecff25ceff54aa897ca74e311e8f02..dc815cc6718db546ef1c0ae80e1b7be7fd768bb3 100644 (file)
@@ -590,6 +590,11 @@ struct nvme_command {
        };
 };
 
+static inline bool nvme_is_write(struct nvme_command *cmd)
+{
+       return cmd->common.opcode & 1;
+}
+
 enum {
        NVME_SC_SUCCESS                 = 0x0,
        NVME_SC_INVALID_OPCODE          = 0x1,