diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index 6ff4a52c1..dc7810a00 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -60,6 +60,7 @@ spdk_nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, g_nvmf_tgt.max_io_size = max_io_size; g_nvmf_tgt.discovery_genctr = 0; TAILQ_INIT(&g_nvmf_tgt.subsystems); + g_nvmf_tgt.discovery_log_page = NULL; SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max Queues Per Session: %d\n", max_queues_per_sess); SPDK_TRACELOG(SPDK_TRACE_NVMF, "Max Queue Depth: %d\n", max_queue_depth); diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index dd79370e7..1bbba05c7 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -53,6 +53,7 @@ struct spdk_nvmf_tgt { uint32_t max_io_size; uint64_t discovery_genctr; TAILQ_HEAD(, spdk_nvmf_subsystem) subsystems; + struct spdk_nvmf_discovery_log_page *discovery_log_page; }; extern struct spdk_nvmf_tgt g_nvmf_tgt; diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index f995a9254..39c500bf7 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -46,7 +46,6 @@ #include "spdk_internal/bdev.h" #include "spdk_internal/log.h" -static struct spdk_nvmf_discovery_log_page *g_discovery_log_page = NULL; static size_t g_discovery_log_page_size = 0; bool @@ -374,9 +373,9 @@ nvmf_update_discovery_log(void) disc_log->numrec = numrec; disc_log->genctr = g_nvmf_tgt.discovery_genctr; - free(g_discovery_log_page); + free(g_nvmf_tgt.discovery_log_page); - g_discovery_log_page = disc_log; + g_nvmf_tgt.discovery_log_page = disc_log; g_discovery_log_page_size = cur_size; } @@ -386,16 +385,16 @@ spdk_nvmf_get_discovery_log_page(void *buffer, uint64_t offset, uint32_t length) size_t copy_len = 0; size_t zero_len = length; - if (g_discovery_log_page == NULL || - g_discovery_log_page->genctr != g_nvmf_tgt.discovery_genctr) { + if (g_nvmf_tgt.discovery_log_page == NULL || + g_nvmf_tgt.discovery_log_page->genctr != g_nvmf_tgt.discovery_genctr) { nvmf_update_discovery_log(); } /* Copy the valid part of the discovery log page, if any */ - if (g_discovery_log_page && offset < g_discovery_log_page_size) { + if (g_nvmf_tgt.discovery_log_page && offset < g_discovery_log_page_size) { copy_len = spdk_min(g_discovery_log_page_size - offset, length); zero_len -= copy_len; - memcpy(buffer, (char *)g_discovery_log_page + offset, copy_len); + memcpy(buffer, (char *)g_nvmf_tgt.discovery_log_page + offset, copy_len); } /* Zero out the rest of the buffer */ diff --git a/test/lib/nvmf/subsystem/subsystem_ut.c b/test/lib/nvmf/subsystem/subsystem_ut.c index 9e2d2def1..8e6e31765 100644 --- a/test/lib/nvmf/subsystem/subsystem_ut.c +++ b/test/lib/nvmf/subsystem/subsystem_ut.c @@ -227,8 +227,8 @@ test_discovery_log(void) /* Reset discovery-related globals */ g_nvmf_tgt.discovery_genctr = 0; - free(g_discovery_log_page); - g_discovery_log_page = NULL; + free(g_nvmf_tgt.discovery_log_page); + g_nvmf_tgt.discovery_log_page = NULL; g_discovery_log_page_size = 0; /* Add one subsystem and verify that the discovery log contains it */