Whamcloud - gitweb
LU-4751 hsm: Fix sanity-hsm tests for non-mrsh $PDSH
[fs/lustre-release.git] / lnet / lnet / lib-md.c
index f730e24..c70b4da 100644 (file)
@@ -137,7 +137,7 @@ lnet_md_build(lnet_libmd_t *lmd, lnet_md_t *umd, int unlink)
                 for (i = 0; i < (int)niov; i++) {
                         /* We take the page pointer on trust */
                         if (lmd->md_iov.kiov[i].kiov_offset +
-                            lmd->md_iov.kiov[i].kiov_len > CFS_PAGE_SIZE )
+                           lmd->md_iov.kiov[i].kiov_len > PAGE_CACHE_SIZE)
                                 return -EINVAL; /* invalid length */
 
                         total_length += lmd->md_iov.kiov[i].kiov_len;
@@ -391,7 +391,8 @@ EXPORT_SYMBOL(LNetMDBind);
 
 /**
  * Unlink the memory descriptor from any ME it may be linked to and release
- * the internal resources associated with it.
+ * the internal resources associated with it. As a result, active messages
+ * associated with the MD may get aborted.
  *
  * This function does not free the memory region associated with the MD;
  * i.e., the memory the user allocated for this MD. If the ME associated with
@@ -437,15 +438,14 @@ LNetMDUnlink (lnet_handle_md_t mdh)
                 return -ENOENT;
         }
 
-        /* If the MD is busy, lnet_md_unlink just marks it for deletion, and
-         * when the NAL is done, the completion event flags that the MD was
-         * unlinked.  Otherwise, we enqueue an event now... */
-
-        if (md->md_eq != NULL &&
-            md->md_refcount == 0) {
-                lnet_build_unlink_event(md, &ev);
+       md->md_flags |= LNET_MD_FLAG_ABORTED;
+       /* If the MD is busy, lnet_md_unlink just marks it for deletion, and
+        * when the LND is done, the completion event flags that the MD was
+        * unlinked. Otherwise, we enqueue an event now... */
+       if (md->md_eq != NULL && md->md_refcount == 0) {
+               lnet_build_unlink_event(md, &ev);
                lnet_eq_enqueue_event(md->md_eq, &ev);
-        }
+       }
 
         lnet_md_unlink(md);