X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lnet%2Flnet%2Flib-me.c;h=a5f52edaad884edde8f5a9481e2c026d9c9bbb4f;hb=35308b05d9a44b0f25534a7a9caf41c01af45ac2;hp=63d457a861f48b93e13e9c5447b9f8d6461a91b8;hpb=08aa217ce49aba1ded52e0f7adb8a607035123fd;p=fs%2Flustre-release.git diff --git a/lnet/lnet/lib-me.c b/lnet/lnet/lib-me.c index 63d457a..a5f52ed 100644 --- a/lnet/lnet/lib-me.c +++ b/lnet/lnet/lib-me.c @@ -27,7 +27,7 @@ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, Intel Corporation. + * Copyright (c) 2012, 2013, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -81,9 +81,8 @@ LNetMEAttach(unsigned int portal, { struct lnet_match_table *mtable; struct lnet_me *me; - cfs_list_t *head; + struct list_head *head; - LASSERT(the_lnet.ln_init); LASSERT(the_lnet.ln_refcount > 0); if ((int)portal >= the_lnet.ln_nportals) @@ -116,9 +115,9 @@ LNetMEAttach(unsigned int portal, me->me_pos = head - &mtable->mt_mhash[0]; if (pos == LNET_INS_AFTER || pos == LNET_INS_LOCAL) - cfs_list_add_tail(&me->me_list, head); + list_add_tail(&me->me_list, head); else - cfs_list_add(&me->me_list, head); + list_add(&me->me_list, head); lnet_me2handle(handle, me); @@ -156,7 +155,6 @@ LNetMEInsert(lnet_handle_me_t current_meh, struct lnet_portal *ptl; int cpt; - LASSERT(the_lnet.ln_init); LASSERT(the_lnet.ln_refcount > 0); if (pos == LNET_INS_LOCAL) @@ -172,7 +170,7 @@ LNetMEInsert(lnet_handle_me_t current_meh, current_me = lnet_handle2me(¤t_meh); if (current_me == NULL) { - lnet_me_free_locked(new_me); + lnet_me_free(new_me); lnet_res_unlock(cpt); return -ENOENT; @@ -183,7 +181,7 @@ LNetMEInsert(lnet_handle_me_t current_meh, ptl = the_lnet.ln_portals[current_me->me_portal]; if (lnet_ptl_is_unique(ptl)) { /* nosense to insertion on unique portal */ - lnet_me_free_locked(new_me); + lnet_me_free(new_me); lnet_res_unlock(cpt); return -EPERM; } @@ -198,12 +196,12 @@ LNetMEInsert(lnet_handle_me_t current_meh, lnet_res_lh_initialize(the_lnet.ln_me_containers[cpt], &new_me->me_lh); - if (pos == LNET_INS_AFTER) - cfs_list_add(&new_me->me_list, ¤t_me->me_list); - else - cfs_list_add_tail(&new_me->me_list, ¤t_me->me_list); + if (pos == LNET_INS_AFTER) + list_add(&new_me->me_list, ¤t_me->me_list); + else + list_add_tail(&new_me->me_list, ¤t_me->me_list); - lnet_me2handle(handle, new_me); + lnet_me2handle(handle, new_me); lnet_res_unlock(cpt); @@ -233,7 +231,6 @@ LNetMEUnlink(lnet_handle_me_t meh) lnet_event_t ev; int cpt; - LASSERT(the_lnet.ln_init); LASSERT(the_lnet.ln_refcount > 0); cpt = lnet_cpt_of_cookie(meh.cookie); @@ -245,12 +242,13 @@ LNetMEUnlink(lnet_handle_me_t meh) return -ENOENT; } - md = me->me_md; - if (md != NULL && - md->md_eq != NULL && - md->md_refcount == 0) { - lnet_build_unlink_event(md, &ev); - lnet_eq_enqueue_event(md->md_eq, &ev); + md = me->me_md; + if (md != NULL) { + md->md_flags |= LNET_MD_FLAG_ABORTED; + if (md->md_eq != NULL && md->md_refcount == 0) { + lnet_build_unlink_event(md, &ev); + lnet_eq_enqueue_event(md->md_eq, &ev); + } } lnet_me_unlink(me); @@ -264,7 +262,7 @@ EXPORT_SYMBOL(LNetMEUnlink); void lnet_me_unlink(lnet_me_t *me) { - cfs_list_del(&me->me_list); + list_del(&me->me_list); if (me->me_md != NULL) { lnet_libmd_t *md = me->me_md; @@ -275,7 +273,7 @@ lnet_me_unlink(lnet_me_t *me) } lnet_res_lh_invalidate(&me->me_lh); - lnet_me_free_locked(me); + lnet_me_free(me); } #if 0 @@ -290,8 +288,8 @@ lib_me_dump(lnet_me_t *me) CWARN("\tMD\t= %p\n", me->md); CWARN("\tprev\t= %p\n", - cfs_list_entry(me->me_list.prev, lnet_me_t, me_list)); + list_entry(me->me_list.prev, lnet_me_t, me_list)); CWARN("\tnext\t= %p\n", - cfs_list_entry(me->me_list.next, lnet_me_t, me_list)); + list_entry(me->me_list.next, lnet_me_t, me_list)); } #endif