Whamcloud - gitweb
LU-12441 lnet: Detach rspt when md_threshold is infinite 52/35452/9
authorChris Horn <hornc@cray.com>
Thu, 11 Jul 2019 20:08:30 +0000 (15:08 -0500)
committerOleg Drokin <green@whamcloud.com>
Fri, 9 Aug 2019 04:40:33 +0000 (04:40 +0000)
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 <hornc@cray.com>
Change-Id: I4b9499bc6327523f1e911ebc4514002511e42236
Reviewed-on: https://review.whamcloud.com/35452
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexandr Boyko <c17825@cray.com>
Reviewed-by: Amir Shehata <ashehata@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/lnet/lib-msg.c

index 0c630f3..3fdc189 100644 (file)
@@ -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;
 }