From 3420cd6158cb0955af984f4599be15c45551582f Mon Sep 17 00:00:00 2001 From: Chris Horn Date: Wed, 5 Aug 2020 10:17:14 -0500 Subject: [PATCH] LU-13896 lnet: Fix reference leak in lnet_select_pathway We call lnet_nid2peerni_locked() to lookup the peer NI for the message originator. lnet_nid2peerni_locked() takes a reference on the peer NI that is never dropped. Test-Parameters: trivial Fixes: b0e8ab1a5f ("LU-13606 lnet: Allow router to forward to healthier NID") HPE-bug-id: LUS-9185 Signed-off-by: Chris Horn Change-Id: Ie0e8f215d7becfbf33f905a1806da8513798ee8d Reviewed-on: https://review.whamcloud.com/39603 Tested-by: jenkins Reviewed-by: Neil Brown Reviewed-by: Serguei Smirnov Reviewed-by: Amir Shehata Tested-by: Maloo Reviewed-by: Oleg Drokin --- lnet/lnet/lib-move.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lnet/lnet/lib-move.c b/lnet/lnet/lib-move.c index 63e247c..a8c5f5b 100644 --- a/lnet/lnet/lib-move.c +++ b/lnet/lnet/lib-move.c @@ -2767,6 +2767,8 @@ again: * try to send it via non-multi-rail criteria */ if (!IS_ERR(src_lpni)) { + /* Drop ref taken by lnet_nid2peerni_locked() */ + lnet_peer_ni_decref_locked(src_lpni); src_lp = lpni->lpni_peer_net->lpn_peer; if (lnet_peer_is_multi_rail(src_lp) && !lnet_is_peer_ni_alive(lpni)) -- 1.8.3.1