int lnet_acceptor_start(void) { int rc; long rc2; long secure; LASSERT (lnet_acceptor_state.pta_sock == NULL); rc = lnet_acceptor_get_tunables(); if (rc != 0) return rc; #ifndef __KERNEL__ /* Do nothing if we're liblustre clients */ if ((the_lnet.ln_pid & LNET_PID_USERFLAG) != 0) return 0; #endif cfs_mt_init_completion(&lnet_acceptor_state.pta_signal); rc = accept2secure(accept_type, &secure); if (rc <= 0) { cfs_mt_fini_completion(&lnet_acceptor_state.pta_signal); return rc; } if (lnet_count_acceptor_nis() == 0) /* not required */ return 0; rc2 = cfs_create_thread(lnet_acceptor, (void *)(ulong_ptr_t)secure); if (rc2 < 0) { CERROR("Can't start acceptor thread: %d\n", rc); cfs_mt_fini_completion(&lnet_acceptor_state.pta_signal); return -ESRCH; } /* wait for acceptor to startup */ cfs_mt_wait_for_completion(&lnet_acceptor_state.pta_signal); if (!lnet_acceptor_state.pta_shutdown) { /* started OK */ LASSERT (lnet_acceptor_state.pta_sock != NULL); return 0; } LASSERT (lnet_acceptor_state.pta_sock == NULL); cfs_mt_fini_completion(&lnet_acceptor_state.pta_signal); return -ENETDOWN; }
int lnet_acceptor_start(void) { int rc; long rc2; long secure; LASSERT(lnet_acceptor_state.pta_sock == NULL); rc = lnet_acceptor_get_tunables(); if (rc != 0) return rc; init_completion(&lnet_acceptor_state.pta_signal); rc = accept2secure(accept_type, &secure); if (rc <= 0) { fini_completion(&lnet_acceptor_state.pta_signal); return rc; } if (lnet_count_acceptor_nis() == 0) /* not required */ return 0; rc2 = PTR_ERR(kthread_run(lnet_acceptor, (void *)(ulong_ptr_t)secure, "acceptor_%03ld", secure)); if (IS_ERR_VALUE(rc2)) { CERROR("Can't start acceptor thread: %ld\n", rc2); fini_completion(&lnet_acceptor_state.pta_signal); return -ESRCH; } /* wait for acceptor to startup */ wait_for_completion(&lnet_acceptor_state.pta_signal); if (!lnet_acceptor_state.pta_shutdown) { /* started OK */ LASSERT(lnet_acceptor_state.pta_sock != NULL); return 0; } LASSERT(lnet_acceptor_state.pta_sock == NULL); fini_completion(&lnet_acceptor_state.pta_signal); return -ENETDOWN; }