From 1c45d9051764e0637ba90b3db06ba8fa37722916 Mon Sep 17 00:00:00 2001 From: "John L. Hammond" Date: Thu, 24 Aug 2017 15:01:34 -0500 Subject: [PATCH] LU-9913 lnet: balance references in lnet_discover_peer_locked() In lnet_discover_peer_locked() avoid a leaked reference to the peer in the non-blocking discovery case. Signed-off-by: John L. Hammond Change-Id: Ic48414859c923af1ebb197b0b0f2f8d6752043ac Reviewed-on: https://review.whamcloud.com/28695 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Olaf Weber Reviewed-by: Quentin Bouget Reviewed-by: Oleg Drokin --- lnet/lnet/peer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lnet/lnet/peer.c b/lnet/lnet/peer.c index 507fcbe..232a06d 100644 --- a/lnet/lnet/peer.c +++ b/lnet/lnet/peer.c @@ -2012,7 +2012,6 @@ again: if (lnet_peer_is_uptodate(lp)) break; lnet_peer_queue_for_discovery(lp); - lnet_peer_addref_locked(lp); /* * if caller requested a non-blocking operation then * return immediately. Once discovery is complete then the @@ -2021,6 +2020,8 @@ again: */ if (!block) break; + + lnet_peer_addref_locked(lp); lnet_net_unlock(LNET_LOCK_EX); schedule(); finish_wait(&lp->lp_dc_waitq, &wait); -- 1.8.3.1