Commit 9e501ce2 authored by Cunyin Chang's avatar Cunyin Chang Committed by Daniel Verkamp
Browse files

nvmf: Remove the data structure spdk_nvmf_controller.



Change-Id: Ie6e8d0f60abc16216b8c95f12c658ba7cbb3aba0
Signed-off-by: default avatarCunyin Chang <cunyin.chang@intel.com>
parent 1c509335
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -492,9 +492,9 @@ spdk_nvmf_parse_subsystem(struct spdk_conf_section *sp)
			return -1;
		}

		subsystem->ctrlr.dev.virtual.ns_count = 0;
		snprintf(subsystem->ctrlr.dev.virtual.sn, MAX_SN_LEN, "%s", sn);
		subsystem->ctrlr.ops = &spdk_nvmf_virtual_ctrlr_ops;
		subsystem->dev.virtual.ns_count = 0;
		snprintf(subsystem->dev.virtual.sn, MAX_SN_LEN, "%s", sn);
		subsystem->ops = &spdk_nvmf_virtual_ctrlr_ops;

		for (i = 0; i < MAX_VIRTUAL_NAMESPACE; i++) {
			val = spdk_conf_section_get_nval(sp, "Namespace", i);
+10 −10
Original line number Diff line number Diff line
@@ -44,15 +44,15 @@ nvmf_direct_ctrlr_get_data(struct nvmf_session *session)
{
	const struct spdk_nvme_ctrlr_data	*cdata;

	cdata = spdk_nvme_ctrlr_get_data(session->subsys->ctrlr.dev.direct.ctrlr);
	cdata = spdk_nvme_ctrlr_get_data(session->subsys->dev.direct.ctrlr);
	memcpy(&session->vcdata, cdata, sizeof(struct spdk_nvme_ctrlr_data));
}

static void
nvmf_direct_ctrlr_poll_for_completions(struct nvmf_session *session)
{
	spdk_nvme_ctrlr_process_admin_completions(session->subsys->ctrlr.dev.direct.ctrlr);
	spdk_nvme_qpair_process_completions(session->subsys->ctrlr.dev.direct.io_qpair, 0);
	spdk_nvme_ctrlr_process_admin_completions(session->subsys->dev.direct.ctrlr);
	spdk_nvme_qpair_process_completions(session->subsys->dev.direct.io_qpair, 0);
}

static void
@@ -134,10 +134,10 @@ nvmf_direct_ctrlr_process_admin_cmd(struct spdk_nvmf_request *req)
			memcpy(req->data, &session->vcdata, sizeof(struct spdk_nvme_ctrlr_data));
			return SPDK_NVMF_REQUEST_EXEC_STATUS_COMPLETE;
		} else if ((cmd->cdw10 & 0xFF) == SPDK_NVME_IDENTIFY_ACTIVE_NS_LIST) {
			vs = spdk_nvme_ctrlr_get_regs_vs(subsystem->ctrlr.dev.direct.ctrlr);
			vs = spdk_nvme_ctrlr_get_regs_vs(subsystem->dev.direct.ctrlr);
			if (vs.raw < SPDK_NVME_VERSION(1, 1, 0)) {
				/* fill in identify ns list with virtual controller information */
				rc = nvmf_direct_ctrlr_admin_identify_nslist(subsystem->ctrlr.dev.direct.ctrlr, req);
				rc = nvmf_direct_ctrlr_admin_identify_nslist(subsystem->dev.direct.ctrlr, req);
				if (rc < 0) {
					SPDK_ERRLOG("Invalid Namespace or Format\n");
					response->status.sc = SPDK_NVME_SC_INVALID_NAMESPACE_OR_FORMAT;
@@ -210,7 +210,7 @@ nvmf_direct_ctrlr_process_admin_cmd(struct spdk_nvmf_request *req)
	default:
passthrough:
		SPDK_TRACELOG(SPDK_TRACE_NVMF, "admin_cmd passthrough: opc 0x%02x\n", cmd->opc);
		rc = spdk_nvme_ctrlr_cmd_admin_raw(subsystem->ctrlr.dev.direct.ctrlr,
		rc = spdk_nvme_ctrlr_cmd_admin_raw(subsystem->dev.direct.ctrlr,
						   cmd,
						   req->data, req->length,
						   nvmf_direct_ctrlr_complete_cmd,
@@ -231,8 +231,8 @@ nvmf_direct_ctrlr_process_io_cmd(struct spdk_nvmf_request *req)
	struct spdk_nvmf_subsystem *subsystem = req->conn->sess->subsys;
	int rc;

	rc = spdk_nvme_ctrlr_cmd_io_raw(subsystem->ctrlr.dev.direct.ctrlr,
					subsystem->ctrlr.dev.direct.io_qpair,
	rc = spdk_nvme_ctrlr_cmd_io_raw(subsystem->dev.direct.ctrlr,
					subsystem->dev.direct.io_qpair,
					&req->cmd->nvme_cmd,
					req->data, req->length,
					nvmf_direct_ctrlr_complete_cmd,
@@ -250,8 +250,8 @@ nvmf_direct_ctrlr_process_io_cmd(struct spdk_nvmf_request *req)
static void
nvmf_direct_ctrlr_detach(struct spdk_nvmf_subsystem *subsystem)
{
	if (subsystem->ctrlr.dev.direct.ctrlr) {
		spdk_nvme_detach(subsystem->ctrlr.dev.direct.ctrlr);
	if (subsystem->dev.direct.ctrlr) {
		spdk_nvme_detach(subsystem->dev.direct.ctrlr);
	}
}

+2 −2
Original line number Diff line number Diff line
@@ -343,10 +343,10 @@ spdk_nvmf_request_exec(struct spdk_nvmf_request *req)
		if (subsystem->subtype == SPDK_NVMF_SUBTYPE_DISCOVERY) {
			status = nvmf_process_discovery_cmd(req);
		} else {
			status = session->subsys->ctrlr.ops->process_admin_cmd(req);
			status = session->subsys->ops->process_admin_cmd(req);
		}
	} else {
		status = session->subsys->ctrlr.ops->process_io_cmd(req);
		status = session->subsys->ops->process_io_cmd(req);
	}

	switch (status) {
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ nvmf_init_nvme_session_properties(struct nvmf_session *session)
	assert((g_nvmf_tgt.max_io_size % 4096) == 0);

	/* Init the controller details */
	session->subsys->ctrlr.ops->ctrlr_get_data(session);
	session->subsys->ops->ctrlr_get_data(session);

	session->vcdata.aerl = 0;
	session->vcdata.cntlid = 0;
+10 −10
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ spdk_nvmf_subsystem_poll(struct spdk_nvmf_subsystem *subsystem)

	/* For NVMe subsystems, check the backing physical device for completions. */
	if (subsystem->subtype == SPDK_NVMF_SUBTYPE_NVME) {
		session->subsys->ctrlr.ops->poll_for_completions(session);
		session->subsys->ops->poll_for_completions(session);
	}

	/* For each connection in the session, check for completions */
@@ -188,8 +188,8 @@ nvmf_delete_subsystem_poller_unreg(struct spdk_event *event)
	if (subsystem->session) {
		spdk_nvmf_session_destruct(subsystem->session);
	}
	if (subsystem->ctrlr.ops) {
		subsystem->ctrlr.ops->detach(subsystem);
	if (subsystem->ops) {
		subsystem->ops->detach(subsystem);
	}

	TAILQ_REMOVE(&g_subsystems, subsystem, entries);
@@ -284,14 +284,14 @@ int
nvmf_subsystem_add_ctrlr(struct spdk_nvmf_subsystem *subsystem,
			 struct spdk_nvme_ctrlr *ctrlr)
{
	subsystem->ctrlr.dev.direct.ctrlr = ctrlr;
	subsystem->dev.direct.ctrlr = ctrlr;
	/* Assume that all I/O will be handled on one thread for now */
	subsystem->ctrlr.dev.direct.io_qpair = spdk_nvme_ctrlr_alloc_io_qpair(ctrlr, 0);
	if (subsystem->ctrlr.dev.direct.io_qpair == NULL) {
	subsystem->dev.direct.io_qpair = spdk_nvme_ctrlr_alloc_io_qpair(ctrlr, 0);
	if (subsystem->dev.direct.io_qpair == NULL) {
		SPDK_ERRLOG("spdk_nvme_ctrlr_alloc_io_qpair() failed\n");
		return -1;
	}
	subsystem->ctrlr.ops = &spdk_nvmf_direct_ctrlr_ops;
	subsystem->ops = &spdk_nvmf_direct_ctrlr_ops;
	return 0;
}

@@ -349,14 +349,14 @@ spdk_nvmf_subsystem_add_ns(struct spdk_nvmf_subsystem *subsystem, struct spdk_bd
	int i = 0;

	assert(subsystem->mode == NVMF_SUBSYSTEM_MODE_VIRTUAL);
	while (i < MAX_VIRTUAL_NAMESPACE && subsystem->ctrlr.dev.virtual.ns_list[i]) {
	while (i < MAX_VIRTUAL_NAMESPACE && subsystem->dev.virtual.ns_list[i]) {
		i++;
	}
	if (i == MAX_VIRTUAL_NAMESPACE) {
		SPDK_ERRLOG("spdk_nvmf_subsystem_add_ns() failed\n");
		return -1;
	}
	subsystem->ctrlr.dev.virtual.ns_list[i] = bdev;
	subsystem->ctrlr.dev.virtual.ns_count++;
	subsystem->dev.virtual.ns_list[i] = bdev;
	subsystem->dev.virtual.ns_count++;
	return 0;
}
Loading