Commit 20528e26 authored by Jim Harris's avatar Jim Harris Committed by Daniel Verkamp
Browse files

iscsi: simplify spdk_iscsi_conn_stop_poller()



All calls to this function now use spdk_env_get_current_core()
as lcore, so remove this parameter.

All calls to this function also use _spdk_iscsi_conn_free() as
the stop_fn, so remove that parameter as well - just call that
function directly from the callsites and eliminate the extra
event.

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

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


Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatar <shuhei.matsumoto.xt@hitachi.com>
Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 5aa90453
Loading
Loading
Loading
Loading
+8 −13
Original line number Diff line number Diff line
@@ -79,8 +79,7 @@ void spdk_iscsi_conn_login_do_work(void *arg);
void spdk_iscsi_conn_full_feature_do_work(void *arg);

static void spdk_iscsi_conn_full_feature_migrate(void *arg1, void *arg2);
static void spdk_iscsi_conn_stop_poller(struct spdk_iscsi_conn *conn, spdk_event_fn fn_after_stop,
					int lcore);
static void spdk_iscsi_conn_stop_poller(struct spdk_iscsi_conn *conn);

static struct spdk_iscsi_conn *
allocate_conn(void)
@@ -653,10 +652,8 @@ spdk_iscsi_conn_cleanup_backend(struct spdk_iscsi_conn *conn)
}

static void
_spdk_iscsi_conn_free(void *arg1, void *arg2)
_spdk_iscsi_conn_free(struct spdk_iscsi_conn *conn)
{
	struct spdk_iscsi_conn	*conn = arg1;

	pthread_mutex_lock(&g_conns_mutex);
	spdk_iscsi_remove_conn(conn);
	pthread_mutex_unlock(&g_conns_mutex);
@@ -675,7 +672,8 @@ _spdk_iscsi_conn_check_shutdown(void *arg)

	spdk_poller_unregister(&conn->shutdown_timer);

	spdk_iscsi_conn_stop_poller(conn, _spdk_iscsi_conn_free, spdk_env_get_current_core());
	spdk_iscsi_conn_stop_poller(conn);
	_spdk_iscsi_conn_free(conn);
}

void spdk_iscsi_conn_destruct(struct spdk_iscsi_conn *conn)
@@ -701,7 +699,8 @@ void spdk_iscsi_conn_destruct(struct spdk_iscsi_conn *conn)
		/* The connection cannot be freed yet. Check back later. */
		conn->shutdown_timer = spdk_poller_register(_spdk_iscsi_conn_check_shutdown, conn, 1000);
	} else {
		spdk_iscsi_conn_stop_poller(conn, _spdk_iscsi_conn_free, spdk_env_get_current_core());
		spdk_iscsi_conn_stop_poller(conn);
		_spdk_iscsi_conn_free(conn);
	}
}

@@ -754,13 +753,11 @@ spdk_iscsi_conn_check_shutdown(void *arg)
}

/**
 *  This function will stop the poller for the specified connection, and then call function
 *  fn_after_stop() on the specified lcore.
 *  This function will stop the poller for the specified connection.
 */
static void
spdk_iscsi_conn_stop_poller(struct spdk_iscsi_conn *conn, spdk_event_fn fn_after_stop, int lcore)
spdk_iscsi_conn_stop_poller(struct spdk_iscsi_conn *conn)
{
	struct spdk_event *event;
	struct spdk_iscsi_tgt_node *target;

	if (conn->sess != NULL && conn->sess->session_type == SESSION_TYPE_NORMAL &&
@@ -776,8 +773,6 @@ spdk_iscsi_conn_stop_poller(struct spdk_iscsi_conn *conn, spdk_event_fn fn_after
	__sync_fetch_and_sub(&g_num_connections[spdk_env_get_current_core()], 1);
	spdk_net_framework_clear_socket_association(conn->sock);
	spdk_poller_unregister(&conn->poller);
	event = spdk_event_allocate(lcore, fn_after_stop, conn, NULL);
	spdk_event_call(event);
}

void spdk_shutdown_iscsi_conns(void)