From 0158f354db567d124eed19dde81fe5fb4ee83e73 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Tue, 1 Aug 2017 23:45:49 -0700 Subject: [PATCH] nvme: only update cntlid after adminq connect For ioq, target is supposed to respond with the same cntlid as specified in the connect capsule, but the Linux kernel target doesn't actually do that. It really only needs to be set on the adminq connect, so just do that. Signed-off-by: Jim Harris Change-Id: I4eec605f856bdad2c8614d505241566a9fe292ab Reviewed-on: https://review.gerrithub.io/372345 Reviewed-by: Daniel Verkamp Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker --- lib/nvme/nvme_rdma.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index ac978ee74..05ec86289 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -621,8 +621,10 @@ nvme_rdma_qpair_fabric_connect(struct nvme_rdma_qpair *rqpair) return -1; } - rsp = (struct spdk_nvmf_fabric_connect_rsp *)&status.cpl; - rctrlr->cntlid = rsp->status_code_specific.success.cntlid; + if (nvme_qpair_is_admin_queue(&rqpair->qpair)) { + rsp = (struct spdk_nvmf_fabric_connect_rsp *)&status.cpl; + rctrlr->cntlid = rsp->status_code_specific.success.cntlid; + } ret: spdk_dma_free(nvmf_data); return rc;