-#ifndef __KERNEL__
-
-/**
- * Check whether given service has a reply available for processing
- * and process it.
- *
- * \param svc a ptlrpc service
- * \retval 0 no replies processed
- * \retval 1 one reply processed
- */
-static int
-ptlrpc_server_handle_reply(struct ptlrpc_service_part *svcpt)
-{
- struct ptlrpc_reply_state *rs = NULL;
- ENTRY;
-
- spin_lock(&svcpt->scp_rep_lock);
- if (!cfs_list_empty(&svcpt->scp_rep_queue)) {
- rs = cfs_list_entry(svcpt->scp_rep_queue.prev,
- struct ptlrpc_reply_state,
- rs_list);
- cfs_list_del_init(&rs->rs_list);
- }
- spin_unlock(&svcpt->scp_rep_lock);
- if (rs != NULL)
- ptlrpc_handle_rs(rs);
- RETURN(rs != NULL);
-}
-
-/* FIXME make use of timeout later */
-int
-liblustre_check_services (void *arg)
-{
- int did_something = 0;
- int rc;
- cfs_list_t *tmp, *nxt;
- ENTRY;
-
- /* I'm relying on being single threaded, not to have to lock
- * ptlrpc_all_services etc */
- cfs_list_for_each_safe (tmp, nxt, &ptlrpc_all_services) {
- struct ptlrpc_service *svc =
- cfs_list_entry (tmp, struct ptlrpc_service, srv_list);
- struct ptlrpc_service_part *svcpt;
-
- LASSERT(svc->srv_ncpts == 1);
- svcpt = svc->srv_parts[0];
-
- if (svcpt->scp_nthrs_running != 0) /* I've recursed */
- continue;
-
- /* service threads can block for bulk, so this limits us
- * (arbitrarily) to recursing 1 stack frame per service.
- * Note that the problem with recursion is that we have to
- * unwind completely before our caller can resume. */
-
- svcpt->scp_nthrs_running++;
-
- do {
- rc = ptlrpc_server_handle_req_in(svcpt, NULL);
- rc |= ptlrpc_server_handle_reply(svcpt);
- rc |= ptlrpc_at_check_timed(svcpt);
- rc |= ptlrpc_server_handle_request(svcpt, NULL);
- rc |= (ptlrpc_server_post_idle_rqbds(svcpt) > 0);
- did_something |= rc;
- } while (rc);
-
- svcpt->scp_nthrs_running--;
- }
-
- RETURN(did_something);
-}
-#define ptlrpc_stop_all_threads(s) do {} while (0)
-
-#else /* __KERNEL__ */