Commit 6eb1bee6 authored by Ben Walker's avatar Ben Walker
Browse files

nvmf: Rename spdk_nvmf_init_grp to spdk_nvmf_host



Host is the term used in the specification.

Change-Id: Ie9a06e3ff176e00e2fdcdc5bede701fe768d4b35
Signed-off-by: default avatarBen Walker <benjamin.walker@intel.com>
parent e1d10407
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -267,7 +267,7 @@ spdk_nvmf_parse_init_grp(struct spdk_conf_section *sp)
	const char *mask;
	char **netmasks;
	int num_netmasks;
	struct spdk_nvmf_init_grp *init_grp;
	struct spdk_nvmf_host *host;


	for (num_netmasks = 0; ; num_netmasks++) {
@@ -296,9 +296,9 @@ spdk_nvmf_parse_init_grp(struct spdk_conf_section *sp)
		}
	}

	init_grp = spdk_nvmf_init_grp_create(sp->num, num_netmasks, netmasks);
	host = spdk_nvmf_init_grp_create(sp->num, num_netmasks, netmasks);

	if (!init_grp) {
	if (!host) {
		free(netmasks);
		return -1;
	}
+39 −39
Original line number Diff line number Diff line
@@ -49,15 +49,15 @@
#define MAX_INITIATOR_NAME 256
#define MAX_NETMASK 256

static TAILQ_HEAD(, spdk_nvmf_init_grp)	g_ig_head = TAILQ_HEAD_INITIALIZER(g_ig_head);
static TAILQ_HEAD(, spdk_nvmf_host) g_host_head = TAILQ_HEAD_INITIALIZER(g_host_head);

struct spdk_nvmf_init_grp *
struct spdk_nvmf_host *
spdk_nvmf_init_grp_create(int tag,
			  int num_netmasks,
			  char **netmasks)
{
	int i;
	struct spdk_nvmf_init_grp *ig = NULL;
	struct spdk_nvmf_host *host = NULL;

	/* Make sure there are no duplicate initiator group tags */
	if (nvmf_initiator_group_find_by_tag(tag)) {
@@ -75,46 +75,46 @@ spdk_nvmf_init_grp_create(int tag,
		      "add initiator group (from initiator list) tag=%d, #masks=%d\n",
		      tag, num_netmasks);

	ig = calloc(1, sizeof(*ig));
	if (!ig) {
		SPDK_ERRLOG("initiator group malloc error (%d)\n", tag);
	host = calloc(1, sizeof(*host));
	if (!host) {
		SPDK_ERRLOG("Unable to allocate host (%d)\n", tag);
		return NULL;
	}

	ig->tag = tag;
	host->tag = tag;

	ig->nnetmasks = num_netmasks;
	ig->netmasks = netmasks;
	host->nnetmasks = num_netmasks;
	host->netmasks = netmasks;
	for (i = 0; i < num_netmasks; i++) {
		SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Netmask %s\n", ig->netmasks[i]);
		SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Netmask %s\n", host->netmasks[i]);
	}

	ig->state = GROUP_INIT;
	host->state = GROUP_INIT;

	pthread_mutex_lock(&g_nvmf_tgt.mutex);
	ig->state = GROUP_READY;
	TAILQ_INSERT_TAIL(&g_ig_head, ig, tailq);
	host->state = GROUP_READY;
	TAILQ_INSERT_TAIL(&g_host_head, host, tailq);
	pthread_mutex_unlock(&g_nvmf_tgt.mutex);

	return ig;
	return host;
}

static void
nvmf_initiator_group_destroy(struct spdk_nvmf_init_grp *ig)
nvmf_initiator_group_destroy(struct spdk_nvmf_host *host)
{
#if 0 // TODO: fix bogus scan-build warning about use-after-free
	int i;

	if (!ig) {
	if (!host) {
		return;
	}

	for (i = 0; i < ig->nnetmasks; i++) {
		free(ig->netmasks[i]);
	for (i = 0; i < host->nnetmasks; i++) {
		free(host->netmasks[i]);
	}

	free(ig->netmasks);
	free(ig);
	free(host->netmasks);
	free(host);
#endif
}

@@ -239,25 +239,25 @@ spdk_nvmf_allow_netmask(const char *netmask, const char *addr)
	return 0;
}

struct spdk_nvmf_init_grp *
struct spdk_nvmf_host *
nvmf_initiator_group_find_by_addr(char *addr)
{
	struct spdk_nvmf_init_grp	*ig;
	struct spdk_nvmf_host	*host;
	int i;
	int rc;

	if (addr == NULL)
		return NULL;

	TAILQ_FOREACH(ig, &g_ig_head, tailq) {
	TAILQ_FOREACH(host, &g_host_head, tailq) {
		/* check netmask of each group looking for permission */
		for (i = 0; i < ig->nnetmasks; i++) {
		for (i = 0; i < host->nnetmasks; i++) {
			SPDK_TRACELOG(SPDK_TRACE_DEBUG, "netmask=%s, addr=%s\n",
				      ig->netmasks[i], addr);
			rc = spdk_nvmf_allow_netmask(ig->netmasks[i], addr);
				      host->netmasks[i], addr);
			rc = spdk_nvmf_allow_netmask(host->netmasks[i], addr);
			if (rc > 0) {
				/* OK netmask */
				return ig;
				return host;
			}
		}
	}
@@ -267,15 +267,15 @@ nvmf_initiator_group_find_by_addr(char *addr)
	return NULL;
}

struct spdk_nvmf_init_grp *
struct spdk_nvmf_host *
nvmf_initiator_group_find_by_tag(int tag)
{
	struct spdk_nvmf_init_grp *ig;
	struct spdk_nvmf_host *host;

	TAILQ_FOREACH(ig, &g_ig_head, tailq) {
		if (ig->tag == tag) {
			SPDK_TRACELOG(SPDK_TRACE_DEBUG, " found initiator group with tag: ig %p\n", ig);
			return ig;
	TAILQ_FOREACH(host, &g_host_head, tailq) {
		if (host->tag == tag) {
			SPDK_TRACELOG(SPDK_TRACE_DEBUG, " found initiator group with tag: host %p\n", host);
			return host;
		}
	}

@@ -285,15 +285,15 @@ nvmf_initiator_group_find_by_tag(int tag)
void
nvmf_initiator_group_array_destroy(void)
{
	struct spdk_nvmf_init_grp *ig;
	struct spdk_nvmf_host *host;

	SPDK_TRACELOG(SPDK_TRACE_DEBUG, "Enter\n");
	pthread_mutex_lock(&g_nvmf_tgt.mutex);
	while (!TAILQ_EMPTY(&g_ig_head)) {
		ig = TAILQ_FIRST(&g_ig_head);
		ig->state = GROUP_DESTROY;
		TAILQ_REMOVE(&g_ig_head, ig, tailq);
		nvmf_initiator_group_destroy(ig);
	while (!TAILQ_EMPTY(&g_host_head)) {
		host = TAILQ_FIRST(&g_host_head);
		host->state = GROUP_DESTROY;
		TAILQ_REMOVE(&g_host_head, host, tailq);
		nvmf_initiator_group_destroy(host);
	}
	pthread_mutex_unlock(&g_nvmf_tgt.mutex);
}
+5 −5
Original line number Diff line number Diff line
@@ -37,25 +37,25 @@
#include "spdk/queue.h"
#include "port.h" // For enum group_state

struct spdk_nvmf_init_grp {
struct spdk_nvmf_host {
	int nnetmasks;
	char **netmasks;
	int ref;
	int tag;
	enum group_state state;
	TAILQ_ENTRY(spdk_nvmf_init_grp)	tailq;
	TAILQ_ENTRY(spdk_nvmf_host)	tailq;
};

/* NVMf Initiator Group management API */
struct spdk_nvmf_init_grp *
struct spdk_nvmf_host *
spdk_nvmf_init_grp_create(int tag,
			  int num_netmasks,
			  char **netmasks);

struct spdk_nvmf_init_grp *
struct spdk_nvmf_host *
nvmf_initiator_group_find_by_tag(int tag);

struct spdk_nvmf_init_grp *
struct spdk_nvmf_host *
nvmf_initiator_group_find_by_addr(char *addr);

void
+4 −4
Original line number Diff line number Diff line
@@ -406,7 +406,7 @@ nvmf_post_rdma_recv(struct spdk_nvmf_conn *conn,
static int
nvmf_rdma_cm_connect(struct rdma_cm_event *event)
{
	struct spdk_nvmf_init_grp	*ig;
	struct spdk_nvmf_host		*host;
	struct spdk_nvmf_fabric_intf	*fabric_intf;
	struct rdma_cm_id		*conn_id;
	struct spdk_nvmf_conn		*conn;
@@ -453,12 +453,12 @@ nvmf_rdma_cm_connect(struct rdma_cm_event *event)
	SPDK_TRACELOG(SPDK_TRACE_RDMA, "Connect Route: peer addr %s\n",
		      addr_str);

	ig = nvmf_initiator_group_find_by_addr(addr_str);
	if (ig == NULL) {
	host = nvmf_initiator_group_find_by_addr(addr_str);
	if (host == NULL) {
		SPDK_ERRLOG("connect request: remote host addr not provisioned!\n");
		goto err1;
	}
	SPDK_TRACELOG(SPDK_TRACE_RDMA, "Found approved remote host initiator group %p\n", ig);
	SPDK_TRACELOG(SPDK_TRACE_RDMA, "Found approved remote host %p\n", host);

	/* Init the NVMf rdma transport connection */
	conn = spdk_nvmf_allocate_conn();
+12 −12
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ spdk_nvmf_subsystem_destruct(struct spdk_nvmf_subsystem_grp *ss_group)
	free(ss_group->name);

	for (i = 0; i < ss_group->map_count; i++) {
		ss_group->map[i].ig->ref--;
		ss_group->map[i].host->ref--;
	}

	/* Call NVMf library to free the subsystem */
@@ -229,11 +229,11 @@ spdk_nvmf_subsystem_destruct(struct spdk_nvmf_subsystem_grp *ss_group)

static int
spdk_nvmf_subsystem_add_map(struct spdk_nvmf_subsystem_grp *ss_group,
			    int port_tag, int ig_tag)
			    int port_tag, int host_tag)
{
	struct spdk_nvmf_access_map	*map;
	struct spdk_nvmf_port		*port;
	struct spdk_nvmf_init_grp		*ig;
	struct spdk_nvmf_host		*host;

	port = spdk_nvmf_port_find_by_tag(port_tag);
	if (port == NULL) {
@@ -244,19 +244,19 @@ spdk_nvmf_subsystem_add_map(struct spdk_nvmf_subsystem_grp *ss_group,
		SPDK_ERRLOG("%s: Port%d not active\n", ss_group->name, port_tag);
		return -1;
	}
	ig = nvmf_initiator_group_find_by_tag(ig_tag);
	if (ig == NULL) {
		SPDK_ERRLOG("%s: Host%d not found\n", ss_group->name, ig_tag);
	host = nvmf_initiator_group_find_by_tag(host_tag);
	if (host == NULL) {
		SPDK_ERRLOG("%s: Host%d not found\n", ss_group->name, host_tag);
		return -1;
	}
	if (ig->state != GROUP_READY) {
		SPDK_ERRLOG("%s: Host%d not active\n", ss_group->name, ig_tag);
	if (host->state != GROUP_READY) {
		SPDK_ERRLOG("%s: Host%d not active\n", ss_group->name, host_tag);
		return -1;
	}
	ig->ref++;
	host->ref++;
	map = &ss_group->map[ss_group->map_count];
	map->port = port;
	map->ig = ig;
	map->host = host;
	ss_group->map_count++;

	return 0;
Loading