return -ENOMEM;
rc = lnet_md_build(md, &umd, unlink);
+ if (rc != 0)
+ goto out_free;
+
cpt = lnet_cpt_of_cookie(meh.cookie);
lnet_res_lock(cpt);
- if (rc != 0)
- goto failed;
me = lnet_handle2me(&meh);
if (me == NULL)
rc = lnet_md_link(md, umd.eq_handle, cpt);
if (rc != 0)
- goto failed;
+ goto out_unlock;
/* attach this MD to portal of ME and check if it matches any
* blocked msgs on this portal */
return 0;
- failed:
- lnet_md_free(md);
-
+out_unlock:
lnet_res_unlock(cpt);
+out_free:
+ lnet_md_free(md);
return rc;
}
EXPORT_SYMBOL(LNetMDAttach);
return -ENOMEM;
rc = lnet_md_build(md, &umd, unlink);
+ if (rc != 0)
+ goto out_free;
cpt = lnet_res_lock_current();
- if (rc != 0)
- goto failed;
rc = lnet_md_link(md, umd.eq_handle, cpt);
if (rc != 0)
- goto failed;
+ goto out_unlock;
lnet_md2handle(handle, md);
lnet_res_unlock(cpt);
return 0;
- failed:
- lnet_md_free(md);
-
+ out_unlock:
lnet_res_unlock(cpt);
+
+ out_free:
+ lnet_md_free(md);
return rc;
}
EXPORT_SYMBOL(LNetMDBind);