Commit 905b0378 authored by GangCao's avatar GangCao Committed by Daniel Verkamp
Browse files

nvmf: move g_discovery_log_page variable under g_nvmf_tgt



Change-Id: Iae5234689df5c94fcf6bbef3a10aebe06b2ddd9e
Signed-off-by: default avatarGangCao <gang.cao@intel.com>
parent 50baa132
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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);
+1 −0
Original line number Diff line number Diff line
@@ -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;
+6 −7
Original line number Diff line number Diff line
@@ -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 */
+2 −2
Original line number Diff line number Diff line
@@ -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 */