nvmf: update listen_addrs after successful transport operation
Change-Id: I0b4d50d1f64076a59a7c29e2cc7fd992e09ed3f3 Signed-off-by: GangCao <gang.cao@intel.com>
This commit is contained in:
parent
27cf11d04e
commit
c30ec061e1
@ -134,6 +134,12 @@ spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr)
|
|||||||
assert(transport != NULL);
|
assert(transport != NULL);
|
||||||
transport->listen_addr_remove(addr);
|
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->trname);
|
||||||
free(addr->trsvcid);
|
free(addr->trsvcid);
|
||||||
free(addr->traddr);
|
free(addr->traddr);
|
||||||
|
@ -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,
|
struct spdk_nvmf_listen_addr *spdk_nvmf_listen_addr_create(const char *trname, const char *traddr,
|
||||||
const char *trsvcid);
|
const char *trsvcid);
|
||||||
void spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr);
|
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
|
#define OBJECT_NVMF_IO 0x30
|
||||||
|
|
||||||
|
@ -263,16 +263,17 @@ spdk_nvmf_subsystem_add_listener(struct spdk_nvmf_subsystem *subsystem,
|
|||||||
return -1;
|
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);
|
rc = transport->listen_addr_add(listen_addr);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
|
spdk_nvmf_listen_addr_cleanup(listen_addr);
|
||||||
SPDK_ERRLOG("Unable to listen on address '%s'\n", traddr);
|
SPDK_ERRLOG("Unable to listen on address '%s'\n", traddr);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TAILQ_INSERT_HEAD(&subsystem->listen_addrs, listen_addr, link);
|
||||||
|
subsystem->num_listen_addrs++;
|
||||||
|
g_nvmf_tgt.discovery_genctr++;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,6 +91,12 @@ spdk_nvmf_listen_addr_destroy(struct spdk_nvmf_listen_addr *addr)
|
|||||||
free(addr);
|
free(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
spdk_nvmf_listen_addr_cleanup(struct spdk_nvmf_listen_addr *addr)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
test_transport1_listen_addr_add(struct spdk_nvmf_listen_addr *listen_addr)
|
test_transport1_listen_addr_add(struct spdk_nvmf_listen_addr *listen_addr)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user