X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lnet%2Flnet%2Flib-md.c;h=6c988f21c2a2977a2455369a28c109f66ec0264d;hb=6f695370c5d5a37f05c5bcc6e73649e3b7d40d36;hp=27c7e070c0d2d937918e8bf52cafc6ea50997165;hpb=69da95e2e314e42eaf14d7c686536d0dc8d2ba5b;p=fs%2Flustre-release.git diff --git a/lnet/lnet/lib-md.c b/lnet/lnet/lib-md.c index 27c7e07..6c988f2 100644 --- a/lnet/lnet/lib-md.c +++ b/lnet/lnet/lib-md.c @@ -16,8 +16,8 @@ * in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see [sun.com URL with a - * copy of GPLv2]. + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or @@ -77,7 +77,8 @@ lnet_md_unlink(lnet_libmd_t *md) LASSERT (md->md_eq->eq_refcount >= 0); } - list_del (&md->md_list); + LASSERT (!list_empty(&md->md_list)); + list_del_init (&md->md_list); lnet_md_free(md); } @@ -95,7 +96,7 @@ lib_md_build(lnet_libmd_t *lmd, lnet_md_t *umd, int unlink) * otherwise caller may only lnet_md_free() it. */ - if (!LNetHandleIsEqual (umd->eq_handle, LNET_EQ_NONE)) { + if (!LNetHandleIsInvalid (umd->eq_handle)) { eq = lnet_handle2eq(&umd->eq_handle); if (eq == NULL) return -ENOENT; @@ -130,7 +131,7 @@ lib_md_build(lnet_libmd_t *lmd, lnet_md_t *umd, int unlink) memcpy(lmd->md_iov.iov, umd->start, niov * sizeof (lmd->md_iov.iov[0])); - for (i = 0; i < niov; i++) { + for (i = 0; i < (int)niov; i++) { /* We take the base address on trust */ if (lmd->md_iov.iov[i].iov_len <= 0) /* invalid length */ return -EINVAL; @@ -153,7 +154,7 @@ lib_md_build(lnet_libmd_t *lmd, lnet_md_t *umd, int unlink) memcpy(lmd->md_iov.kiov, umd->start, niov * sizeof (lmd->md_iov.kiov[0])); - for (i = 0; i < niov; i++) { + 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 ) @@ -177,7 +178,7 @@ lib_md_build(lnet_libmd_t *lmd, lnet_md_t *umd, int unlink) if ((umd->options & LNET_MD_MAX_SIZE) != 0 && /* max size used */ (umd->max_size < 0 || - umd->max_size > umd->length)) // illegal max_size + umd->max_size > (int)umd->length)) // illegal max_size return -EINVAL; } @@ -186,6 +187,7 @@ lib_md_build(lnet_libmd_t *lmd, lnet_md_t *umd, int unlink) /* It's good; let handle2md succeed and add to active mds */ lnet_initialise_handle (&lmd->md_lh, LNET_COOKIE_TYPE_MD); + LASSERT (list_empty(&lmd->md_list)); list_add (&lmd->md_list, &the_lnet.ln_active_mds); return 0; @@ -242,6 +244,8 @@ LNetMDAttach(lnet_handle_me_t meh, lnet_md_t umd, } else { rc = lib_md_build(md, &umd, unlink); if (rc == 0) { + the_lnet.ln_portals[me->me_portal].ptl_ml_version++; + me->me_md = md; md->md_me = me;