+ while (!cfs_list_empty(&svcpt->scp_threads)) {
+ thread = cfs_list_entry(svcpt->scp_threads.next,
+ struct ptlrpc_thread, t_link);
+ if (thread_is_stopped(thread)) {
+ cfs_list_del(&thread->t_link);
+ cfs_list_add(&thread->t_link, &zombie);
+ continue;
+ }
+ cfs_spin_unlock(&svcpt->scp_lock);
+
+ CDEBUG(D_INFO, "waiting for stopping-thread %s #%u\n",
+ svcpt->scp_service->srv_thread_name, thread->t_id);
+ l_wait_event(thread->t_ctl_waitq,
+ thread_is_stopped(thread), &lwi);
+
+ cfs_spin_lock(&svcpt->scp_lock);
+ }
+