From ebbf909a1c2d0f5400da2d98e1bb274a9e82e0a5 Mon Sep 17 00:00:00 2001 From: Chris Horn Date: Thu, 11 Jul 2019 15:08:30 -0500 Subject: [PATCH] LU-12441 lnet: Detach rspt when md_threshold is infinite MDs for pings use the infinite threshold on MD operations. As such they aren't normally unlinkable as determined by lnet_md_unlinkable(). We can cover this case by checking whether the refcount is zero and threshold is LNET_MD_THRESH_INF. Cray-bug-id: LUS-7366 Signed-off-by: Chris Horn Change-Id: I4b9499bc6327523f1e911ebc4514002511e42236 Reviewed-on: https://review.whamcloud.com/35452 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Alexandr Boyko Reviewed-by: Amir Shehata Reviewed-by: Oleg Drokin --- lnet/lnet/lib-msg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lnet/lnet/lib-msg.c b/lnet/lnet/lib-msg.c index 0c630f3..3fdc189 100644 --- a/lnet/lnet/lib-msg.c +++ b/lnet/lnet/lib-msg.c @@ -832,10 +832,12 @@ lnet_msg_detach_md(struct lnet_msg *msg, int cpt, int status) lnet_eq_enqueue_event(md->md_eq, &msg->msg_ev); } - if (unlink) { + if (unlink || (md->md_refcount == 0 && + md->md_threshold == LNET_MD_THRESH_INF)) lnet_detach_rsp_tracker(md, cpt); + + if (unlink) lnet_md_unlink(md); - } msg->msg_md = NULL; } -- 1.8.3.1