Whamcloud - gitweb
LU-1425 build: make Lustre build ready for gcov
[fs/lustre-release.git] / lnet / lnet / router.c
index 81cc9d8..a380035 100644 (file)
@@ -85,19 +85,19 @@ CFS_MODULE_PARM(check_routers_before_use, "i", int, 0444,
                 "Assume routers are down and ping them before use");
 
 static int avoid_asym_router_failure = 0;
-CFS_MODULE_PARM(avoid_asym_router_failure, "i", int, 0444,
+CFS_MODULE_PARM(avoid_asym_router_failure, "i", int, 0644,
                 "Avoid asymmetrical failures: reserved, use at your own risk");
 
 static int dead_router_check_interval = 0;
-CFS_MODULE_PARM(dead_router_check_interval, "i", int, 0444,
+CFS_MODULE_PARM(dead_router_check_interval, "i", int, 0644,
                 "Seconds between dead router health checks (<= 0 to disable)");
 
 static int live_router_check_interval = 0;
-CFS_MODULE_PARM(live_router_check_interval, "i", int, 0444,
+CFS_MODULE_PARM(live_router_check_interval, "i", int, 0644,
                 "Seconds between live router health checks (<= 0 to disable)");
 
 static int router_ping_timeout = 50;
-CFS_MODULE_PARM(router_ping_timeout, "i", int, 0444,
+CFS_MODULE_PARM(router_ping_timeout, "i", int, 0644,
                 "Seconds to wait for the reply to a router health query");
 
 int
@@ -1162,7 +1162,7 @@ lnet_prune_rc_data(int wait_unlink)
        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);
                }
 
@@ -1179,7 +1179,7 @@ lnet_prune_rc_data(int wait_unlink)
                }
 
                if (!wait_unlink)
-                       break;
+                       return;
 
                i++;
                CDEBUG(((i & (-i)) == i) ? D_WARNING : D_NET,
@@ -1188,6 +1188,8 @@ lnet_prune_rc_data(int wait_unlink)
 
                lnet_net_lock(LNET_LOCK_EX);
        }
+
+       lnet_net_unlock(LNET_LOCK_EX);
 }
 
 
@@ -1570,6 +1572,11 @@ lnet_notify(lnet_ni_t *ni, lnet_nid_t nid, int alive, cfs_time_t when)
 
        lnet_net_lock(cpt);
 
+       if (the_lnet.ln_shutdown) {
+               lnet_net_unlock(cpt);
+               return -ESHUTDOWN;
+       }
+
        lp = lnet_find_peer_locked(the_lnet.ln_peer_tables[cpt], nid);
        if (lp == NULL) {
                /* nid not found */