@@ -157,6 +157,8 @@ static inline int lnet_md_unlinkable(struct lnet_libmd *md)
{
unsigned int size;
+ LASSERTF(md->md_rspt_ptr == NULL, "md %p rsp %p\n", md, md->md_rspt_ptr);
+
if ((md->md_options & LNET_MD_KIOV) != 0)
size = offsetof(struct lnet_libmd, md_iov.kiov[md->md_niov]);
else
@@ -548,6 +548,9 @@ int lnet_cpt_of_md(struct lnet_libmd *md, unsigned int offset)
lnet_eq_enqueue_event(md->md_eq, &ev);
}
+ if (md->md_rspt_ptr)
+ lnet_detach_rsp_tracker(md, cpt);
+
lnet_md_unlink(md);
lnet_res_unlock(cpt);