Commit d1efcf8c authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

nvme: Add spdk_nvme_qpair_is_connected() to check connection state



The upper layer wants to know when the qpair is actually connected
and can start processing I/Os. Add a new API
spdk_nvme_qpair_is_connected() for the purpose.

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ib15305aa7b08000c5a88baad5595ce99b1251506
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18242


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
parent 5d025489
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1871,6 +1871,15 @@ spdk_nvme_qp_failure_reason spdk_nvme_qpair_get_failure_reason(struct spdk_nvme_
 */
void spdk_nvme_qpair_set_abort_dnr(struct spdk_nvme_qpair *qpair, bool dnr);

/**
 * Return the connection status of a given qpair.
 *
 * \param qpair The qpair to check.
 *
 * \return true if the qpair is connected, or false otherwise.
 */
bool spdk_nvme_qpair_is_connected(struct spdk_nvme_qpair *qpair);

/**
 * Send the given admin command to the NVMe controller.
 *
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk

SO_VER := 10
SO_MINOR := 0
SO_MINOR := 1

C_SRCS = nvme_ctrlr_cmd.c nvme_ctrlr.c nvme_fabric.c nvme_ns_cmd.c \
	nvme_ns.c nvme_pcie_common.c nvme_pcie.c nvme_qpair.c nvme.c \
+7 −0
Original line number Diff line number Diff line
@@ -836,6 +836,13 @@ spdk_nvme_qpair_set_abort_dnr(struct spdk_nvme_qpair *qpair, bool dnr)
	qpair->abort_dnr = dnr ? 1 : 0;
}

bool
spdk_nvme_qpair_is_connected(struct spdk_nvme_qpair *qpair)
{
	return nvme_qpair_get_state(qpair) >= NVME_QPAIR_CONNECTED &&
	       nvme_qpair_get_state(qpair) <= NVME_QPAIR_ENABLED;
}

int
nvme_qpair_init(struct spdk_nvme_qpair *qpair, uint16_t id,
		struct spdk_nvme_ctrlr *ctrlr,
+1 −0
Original line number Diff line number Diff line
@@ -186,6 +186,7 @@
	spdk_nvme_qpair_get_id;
	spdk_nvme_qpair_get_num_outstanding_reqs;
	spdk_nvme_qpair_set_abort_dnr;
	spdk_nvme_qpair_is_connected;

	spdk_nvme_print_command;
	spdk_nvme_print_completion;