Commit d95bb232 authored by Jim Harris's avatar Jim Harris
Browse files

iscsi: unregister poll groups on shutdown



Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Ic2bae1c750d2c9b35bded8ed96c3b84832690ce2

Reviewed-on: https://review.gerrithub.io/401479


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 6285e36e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -546,7 +546,7 @@ static void
spdk_iscsi_conn_check_shutdown_cb(void *arg1, void *arg2)
{
	spdk_iscsi_conns_cleanup();
	spdk_iscsi_fini_done();
	spdk_shutdown_iscsi_conns_done();
}

static void
+1 −1
Original line number Diff line number Diff line
@@ -331,7 +331,7 @@ typedef void (*spdk_iscsi_init_cb)(void *cb_arg, int rc);
void spdk_iscsi_init(spdk_iscsi_init_cb cb_fn, void *cb_arg);
typedef void (*spdk_iscsi_fini_cb)(void *arg);
void spdk_iscsi_fini(spdk_iscsi_fini_cb cb_fn, void *cb_arg);
void spdk_iscsi_fini_done(void);
void spdk_shutdown_iscsi_conns_done(void);
void spdk_iscsi_config_text(FILE *fp);

int spdk_iscsi_send_nopin(struct spdk_iscsi_conn *conn);
+20 −2
Original line number Diff line number Diff line
@@ -860,6 +860,18 @@ iscsi_create_poll_group(void *ctx)
	pg->poller = spdk_poller_register(spdk_iscsi_poll_group_poll, pg, 0);
}

static void
iscsi_unregister_poll_group(void *ctx)
{
	struct spdk_iscsi_poll_group *pg;

	pg = &g_spdk_iscsi.poll_group[spdk_env_get_current_core()];
	assert(pg != NULL);
	assert(pg->poller != NULL);

	spdk_poller_unregister(&pg->poller);
}

static void
spdk_initialize_iscsi_poll_group(void)
{
@@ -926,8 +938,8 @@ spdk_iscsi_fini(spdk_iscsi_fini_cb cb_fn, void *cb_arg)
	spdk_shutdown_iscsi_conns();
}

void
spdk_iscsi_fini_done(void)
static void
spdk_iscsi_fini_done(void *arg)
{
	spdk_iscsi_check_pools();
	spdk_iscsi_free_pools();
@@ -943,6 +955,12 @@ spdk_iscsi_fini_done(void)
	g_fini_cb_fn(g_fini_cb_arg);
}

void
spdk_shutdown_iscsi_conns_done(void)
{
	spdk_for_each_thread(iscsi_unregister_poll_group, NULL, spdk_iscsi_fini_done);
}

void
spdk_iscsi_config_text(FILE *fp)
{
+1 −1
Original line number Diff line number Diff line
@@ -243,7 +243,7 @@ spdk_iscsi_tgt_node_cleanup_luns(struct spdk_iscsi_conn *conn,
}

void
spdk_iscsi_fini_done(void)
spdk_shutdown_iscsi_conns_done(void)
{
}