Whamcloud - gitweb
LU-6002 lnet: startup acceptor thread dynamically
[fs/lustre-release.git] / lnet / lnet / api-ni.c
index 2333899..75ff383 100644 (file)
@@ -2020,6 +2020,16 @@ lnet_dyn_add_ni(lnet_pid_t requested_pid, char *nets,
        if (rc != 0)
                goto failed1;
 
+       if (ni->ni_lnd->lnd_accept != NULL) {
+               rc = lnet_acceptor_start();
+               if (rc < 0) {
+                       /* shutdown the ni that we just started */
+                       CERROR("Failed to start up acceptor thread\n");
+                       lnet_shutdown_lndni(ni);
+                       goto failed1;
+               }
+       }
+
        lnet_ping_target_update(pinfo, md_handle);
        LNET_MUTEX_UNLOCK(&the_lnet.ln_api_mutex);
 
@@ -2067,6 +2077,10 @@ lnet_dyn_del_ni(__u32 net)
        lnet_ni_decref_locked(ni, 0);
 
        lnet_shutdown_lndni(ni);
+
+       if (lnet_count_acceptor_nis() == 0)
+               lnet_acceptor_stop();
+
        lnet_ping_target_update(pinfo, md_handle);
        goto out;
 failed: