/* * Called from a server thread as it's exiting. Caller must hold the "service * mutex" for the service. */ void svc_rqst_free(struct svc_rqst *rqstp) { svc_release_buffer(rqstp); kfree(rqstp->rq_resp); kfree(rqstp->rq_argp); kfree(rqstp->rq_auth_data); kfree_rcu(rqstp, rq_rcu_head); }
/* * Destroy an RPC server thread */ void svc_exit_thread(struct svc_rqst *rqstp) { struct svc_serv *serv = rqstp->rq_server; svc_release_buffer(rqstp); kfree(rqstp->rq_resp); kfree(rqstp->rq_argp); kfree(rqstp->rq_auth_data); kfree(rqstp); /* Release the server */ if (serv) svc_destroy(serv); }