From 2a183829cdcc7008f2b9706cb212b22b877dfce0 Mon Sep 17 00:00:00 2001 From: Serguei Smirnov Date: Wed, 17 Mar 2021 20:52:16 -0700 Subject: [PATCH] LU-14503 o2iblnd: clean up zombie connections on shutdown Clean up zombie connections on net shutdown in o2iblnd Wake up connd threads and wait for them to do the clean-up before proceeding. Test-Parameters: trivial Signed-off-by: Serguei Smirnov Change-Id: Iff8424d9be7401987046fe9aef6e7a787f5efe83 Reviewed-on: https://review.whamcloud.com/42068 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Cyril Bordage Reviewed-by: Chris Horn Reviewed-by: Alexey Lyashkov Reviewed-by: Oleg Drokin --- lnet/klnds/o2iblnd/o2iblnd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lnet/klnds/o2iblnd/o2iblnd.c b/lnet/klnds/o2iblnd/o2iblnd.c index 2b1272a..a20e772 100644 --- a/lnet/klnds/o2iblnd/o2iblnd.c +++ b/lnet/klnds/o2iblnd/o2iblnd.c @@ -3056,6 +3056,12 @@ kiblnd_shutdown(struct lnet_ni *ni) list_del(&net->ibn_list); write_unlock_irqrestore(g_lock, flags); + wake_up_all(&kiblnd_data.kib_connd_waitq); + wait_var_event_warning(&net->ibn_nconns, + atomic_read(&net->ibn_nconns) == 0, + "%s: waiting for %d conns to clean\n", + libcfs_nidstr(&ni->ni_nid), + atomic_read(&net->ibn_nconns)); fallthrough; case IBLND_INIT_NOTHING: -- 1.8.3.1