nvme-fabrics: set sqe.command_id in core not transports
authorJames Smart <james.smart@broadcom.com>
Fri, 21 Oct 2016 20:33:34 +0000 (23:33 +0300)
committerSagi Grimberg <sagi@grimberg.me>
Tue, 6 Dec 2016 08:17:03 +0000 (10:17 +0200)
Currently, core.c sets command_id only on rd/wr commands, leaving it to
the transport to set it again to ensure the request had a command id.

Move location of set in core so applies to all commands.
Remove transport sets.

Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Jay Freyensee <james_p_freyensee@linux.intel.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
drivers/nvme/host/core.c
drivers/nvme/host/pci.c
drivers/nvme/host/rdma.c
drivers/nvme/target/loop.c

index 90c24e88bb388b3faf31f94406fc3bb42924c68c..1b48514fbe99131c27f238970caad56ce716a9ac 100644 (file)
@@ -303,7 +303,6 @@ static inline void nvme_setup_rw(struct nvme_ns *ns, struct request *req,
 
        memset(cmnd, 0, sizeof(*cmnd));
        cmnd->rw.opcode = (rq_data_dir(req) ? nvme_cmd_write : nvme_cmd_read);
-       cmnd->rw.command_id = req->tag;
        cmnd->rw.nsid = cpu_to_le32(ns->ns_id);
        cmnd->rw.slba = cpu_to_le64(nvme_block_nr(ns, blk_rq_pos(req)));
        cmnd->rw.length = cpu_to_le16((blk_rq_bytes(req) >> ns->lba_shift) - 1);
@@ -345,6 +344,8 @@ int nvme_setup_cmd(struct nvme_ns *ns, struct request *req,
        else
                nvme_setup_rw(ns, req, cmd);
 
+       cmd->common.command_id = req->tag;
+
        return ret;
 }
 EXPORT_SYMBOL_GPL(nvme_setup_cmd);
index d58f8e4e2c06f2a2f1bb55d15751f71192940951..82b9b3f1f21d57e269f315b16dd6c361f22d6b4b 100644 (file)
@@ -611,7 +611,6 @@ static int nvme_queue_rq(struct blk_mq_hw_ctx *hctx,
        if (ret != BLK_MQ_RQ_QUEUE_OK)
                goto out;
 
-       cmnd.common.command_id = req->tag;
        blk_mq_start_request(req);
 
        spin_lock_irq(&nvmeq->q_lock);
index f560cd724274da58370d95e12e0c13e1c8f856fd..b037d0cb2a7e05e87502e6a8dc8fb0d68d22d736 100644 (file)
@@ -1399,7 +1399,6 @@ static int nvme_rdma_queue_rq(struct blk_mq_hw_ctx *hctx,
        if (ret != BLK_MQ_RQ_QUEUE_OK)
                return ret;
 
-       c->common.command_id = rq->tag;
        blk_mq_start_request(rq);
 
        map_len = nvme_map_len(rq);
index be56d0567155a204a57390c9bc06fa2d1fb74cf3..57ded6b3ed8a989b6cefb526c7c3dea648980ed7 100644 (file)
@@ -194,7 +194,6 @@ static int nvme_loop_queue_rq(struct blk_mq_hw_ctx *hctx,
                BUG_ON(iod->req.sg_cnt > req->nr_phys_segments);
        }
 
-       iod->cmd.common.command_id = req->tag;
        blk_mq_start_request(req);
 
        schedule_work(&iod->work);