From: John L. Hammond Date: Thu, 24 Aug 2017 20:01:34 +0000 (-0500) Subject: LU-9913 lnet: balance references in lnet_discover_peer_locked() X-Git-Tag: 2.10.53~71 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=refs%2Fchanges%2F95%2F28695%2F2;p=fs%2Flustre-release.git 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 --- 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);