nvmf: update listen_addrs after successful transport operation

Change-Id: I0b4d50d1f64076a59a7c29e2cc7fd992e09ed3f3
Signed-off-by: GangCao <gang.cao@intel.com>
This commit is contained in:
GangCao 2017-02-20 12:52:59 +08:00 committed by Jim Harris
parent 27cf11d04e
commit c30ec061e1
4 changed files with 18 additions and 4 deletions

View File

@ -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);

View File

@ -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

View File

@ -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;
}

View File

@ -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)
{