Commit c30ec061 authored by GangCao's avatar GangCao Committed by Jim Harris
Browse files

nvmf: update listen_addrs after successful transport operation



Change-Id: I0b4d50d1f64076a59a7c29e2cc7fd992e09ed3f3
Signed-off-by: default avatarGangCao <gang.cao@intel.com>
parent 27cf11d0
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -134,6 +134,12 @@ spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr)
	assert(transport != NULL);
	transport->listen_addr_remove(addr);

	spdk_nvmf_listen_addr_cleanup(addr);
}

void
spdk_nvmf_listen_addr_cleanup(struct spdk_nvmf_listen_addr *addr)
{
	free(addr->trname);
	free(addr->trsvcid);
	free(addr->traddr);
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ extern struct spdk_nvmf_tgt g_nvmf_tgt;
struct spdk_nvmf_listen_addr *spdk_nvmf_listen_addr_create(const char *trname, const char *traddr,
		const char *trsvcid);
void spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr);
void spdk_nvmf_listen_addr_cleanup(struct spdk_nvmf_listen_addr *addr);

#define OBJECT_NVMF_IO				0x30

+5 −4
Original line number Diff line number Diff line
@@ -263,16 +263,17 @@ spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
		return -1;
	}

	TAILQ_INSERT_HEAD(&subsystem->listen_addrs, listen_addr, link);
	subsystem->num_listen_addrs++;
	g_nvmf_tgt.discovery_genctr++;

	rc = transport->listen_addr_add(listen_addr);
	if (rc < 0) {
		spdk_nvmf_listen_addr_cleanup(listen_addr);
		SPDK_ERRLOG("Unable to listen on address '%s'\n", traddr);
		return -1;
	}

	TAILQ_INSERT_HEAD(&subsystem->listen_addrs, listen_addr, link);
	subsystem->num_listen_addrs++;
	g_nvmf_tgt.discovery_genctr++;

	return 0;
}

+6 −0
Original line number Diff line number Diff line
@@ -91,6 +91,12 @@ spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr)
	free(addr);
}

void
spdk_nvmf_listen_addr_cleanup(struct spdk_nvmf_listen_addr *addr)
{
	return;
}

static int
test_transport1_listen_addr_add(struct spdk_nvmf_listen_addr *listen_addr)
{