nvme-fabrics: set sqe.command_id in core not transports
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>
This commit is contained in:
		
							parent
							
								
									a317178e36
								
							
						
					
					
						commit
						721b3917c4
					
				| @ -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); | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user