From 16724dc135202635ab7dc62bc0fbd7f87db2213d Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Tue, 24 Dec 2019 00:53:17 -0500 Subject: [PATCH] lib/iscsi: Free session pool after all connections are exited Global session pool had been freed immediately after starting connection shutdown. iSCSI connection shutdown is asynchronous. It will be safe to free global session pool after completion of all connections shutdown. Hence move free(g_spdk_iscsi.session) from spdk_iscsi_fini() to _iscsi_fini_dev_unreg(). Signed-off-by: Shuhei Matsumoto Change-Id: I4c16930a0e861a190115049cba3739ec01f0a8a2 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/494 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- lib/iscsi/iscsi_subsystem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/iscsi/iscsi_subsystem.c b/lib/iscsi/iscsi_subsystem.c index 7f25f0ce3..6234e43b3 100644 --- a/lib/iscsi/iscsi_subsystem.c +++ b/lib/iscsi/iscsi_subsystem.c @@ -1386,7 +1386,6 @@ spdk_iscsi_fini(spdk_iscsi_fini_cb cb_fn, void *cb_arg) spdk_iscsi_portal_grp_close_all(); spdk_shutdown_iscsi_conns(); - free(g_spdk_iscsi.session); } static void @@ -1404,6 +1403,7 @@ _iscsi_fini_dev_unreg(struct spdk_io_channel_iter *i, int status) { iscsi_check_pools(); iscsi_free_pools(); + free(g_spdk_iscsi.session); assert(TAILQ_EMPTY(&g_spdk_iscsi.poll_group_head));