Should release lock on exiting of lnet_prune_rc_data(), otherwise
we will get deadlock on later attempting on lnet_net_lock().
Also, there is a wrong condition check in lnet_prune_rc_data()
can prevent router checker from shutting down.
Signed-off-by: Liang Zhen <liang@whamcloud.com>
Change-Id: I5292075453e61f300384043e2346df714c530303
Reviewed-on: http://review.whamcloud.com/3250
Tested-by: Hudson
Reviewed-by: Bobi Jam <bobijam@whamcloud.com>
Reviewed-by: Doug Oucharek <doug@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
while (!cfs_list_empty(&the_lnet.ln_rcd_zombie)) {
cfs_list_for_each_entry_safe(rcd, tmp, &the_lnet.ln_rcd_zombie,
rcd_list) {
- if (!LNetHandleIsInvalid(rcd->rcd_mdh))
+ if (LNetHandleIsInvalid(rcd->rcd_mdh))
cfs_list_move(&rcd->rcd_list, &head);
}
}
if (!wait_unlink)
- break;
+ return;
i++;
CDEBUG(((i & (-i)) == i) ? D_WARNING : D_NET,
lnet_net_lock(LNET_LOCK_EX);
}
+
+ lnet_net_unlock(LNET_LOCK_EX);
}