Commit 289eef51 authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

nvmf: allow non-fabrics transports to execute fabrics commands



Previously, if a non-fabrics transport wanted to execute fabrics
commands (e.g. to emulate register access by a PROPERTY_{GET,SET}
command), it had to use spdk_nvmf_request_exec_fabrics().  However,
because we want to remove this function in the future,
spdk_nvmf_request_exec() needs to allow non-fabrics transports to
execute fabrics commands.  This also means that such transports are now
responsible for rejecting fabrics commands sent by hosts.

Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I23d7e89b6045dcfeeeff398469e80d408059efdb
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22237


Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Reviewed-by: default avatarJacek Kalwas <jacek.kalwas@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
parent 3a1a1079
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -4618,7 +4618,6 @@ 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_unlikely(!nvmf_check_subsystem_active(req))) {
@@ -4632,8 +4631,7 @@ spdk_nvmf_request_exec(struct spdk_nvmf_request *req)
	/* Place the request on the outstanding list so we can keep track of it */
	TAILQ_INSERT_TAIL(&qpair->outstanding, req, link);

	if (spdk_unlikely((req->cmd->nvmf_cmd.opcode == SPDK_NVME_OPC_FABRIC) &&
			  spdk_nvme_trtype_is_fabrics(transport->ops->type))) {
	if (spdk_unlikely(req->cmd->nvmf_cmd.opcode == SPDK_NVME_OPC_FABRIC)) {
		status = nvmf_ctrlr_process_fabrics_cmd(req);
	} else if (spdk_unlikely(nvmf_qpair_is_admin_queue(qpair))) {
		status = nvmf_ctrlr_process_admin_cmd(req);