From 675c86951ba8a92c0008c66cdeb1fd329c7a4412 Mon Sep 17 00:00:00 2001 From: Liang Zhen Date: Wed, 27 Feb 2013 15:54:52 +0800 Subject: [PATCH] LU-2745 lnet: fix failure handle of create reply error handler of lnet_create_reply_msg() didn't release lnet_res_lock if lnet_msg_alloc() failed. It can be fixed by moving validation check of msg out from lock. Signed-off-by: Liang Zhen Change-Id: I5a25b7e07d24f5c4f165a3266cca6e79dffc1461 Reviewed-on: http://review.whamcloud.com/5542 Tested-by: Maloo Reviewed-by: Doug Oucharek Reviewed-by: Isaac Huang Reviewed-by: Oleg Drokin --- lnet/lnet/lib-move.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lnet/lnet/lib-move.c b/lnet/lnet/lib-move.c index ce7f926..30a70ae 100644 --- a/lnet/lnet/lib-move.c +++ b/lnet/lnet/lib-move.c @@ -2213,16 +2213,16 @@ lnet_create_reply_msg (lnet_ni_t *ni, lnet_msg_t *getmsg) LASSERT(!getmsg->msg_target_is_router); LASSERT(!getmsg->msg_routing); + if (msg == NULL) { + CERROR("%s: Dropping REPLY from %s: can't allocate msg\n", + libcfs_nid2str(ni->ni_nid), libcfs_id2str(peer_id)); + goto drop; + } + cpt = lnet_cpt_of_cookie(getmd->md_lh.lh_cookie); lnet_res_lock(cpt); - LASSERT (getmd->md_refcount > 0); - - if (msg == NULL) { - CERROR ("%s: Dropping REPLY from %s: can't allocate msg\n", - libcfs_nid2str(ni->ni_nid), libcfs_id2str(peer_id)); - goto drop; - } + LASSERT(getmd->md_refcount > 0); if (getmd->md_threshold == 0) { CERROR ("%s: Dropping REPLY from %s for inactive MD %p\n", -- 1.8.3.1