diff --git a/lib/nvmf/ctrlr.c b/lib/nvmf/ctrlr.c index a1725c154..2e16bc353 100644 --- a/lib/nvmf/ctrlr.c +++ b/lib/nvmf/ctrlr.c @@ -4132,6 +4132,7 @@ void spdk_nvmf_request_exec(struct spdk_nvmf_request *req) { struct spdk_nvmf_qpair *qpair = req->qpair; + struct spdk_nvmf_transport *transport = qpair->transport; enum spdk_nvmf_request_exec_status status; if (!spdk_nvmf_using_zcopy(req->zcopy_phase)) { @@ -4147,7 +4148,8 @@ spdk_nvmf_request_exec(struct spdk_nvmf_request *req) /* Place the request on the outstanding list so we can keep track of it */ nvmf_add_to_outstanding_queue(req); - if (spdk_unlikely(req->cmd->nvmf_cmd.opcode == SPDK_NVME_OPC_FABRIC)) { + if (spdk_unlikely((req->cmd->nvmf_cmd.opcode == SPDK_NVME_OPC_FABRIC) && + spdk_nvme_trtype_is_fabrics(transport->ops->type))) { status = nvmf_ctrlr_process_fabrics_cmd(req); } else if (spdk_unlikely(nvmf_qpair_is_admin_queue(qpair))) { status = nvmf_ctrlr_process_admin_cmd(req);