}
 
 static struct svc_rqst *
-svc_rqst_alloc(struct svc_serv *serv, struct svc_pool *pool, int node)
+svc_prepare_thread(struct svc_serv *serv, struct svc_pool *pool, int node)
 {
        struct svc_rqst *rqstp;
 
        if (!svc_init_buffer(rqstp, serv->sv_max_mesg, node))
                goto out_enomem;
 
-       return rqstp;
-out_enomem:
-       svc_rqst_free(rqstp);
-       return NULL;
-}
-
-static struct svc_rqst *
-svc_prepare_thread(struct svc_serv *serv, struct svc_pool *pool, int node)
-{
-       struct svc_rqst *rqstp;
-
-       rqstp = svc_rqst_alloc(serv, pool, node);
-       if (!rqstp)
-               return ERR_PTR(-ENOMEM);
-
        serv->sv_nrthreads += 1;
        pool->sp_nrthreads += 1;
 
        list_add_rcu(&rqstp->rq_all, &pool->sp_all_threads);
 
        return rqstp;
+
+out_enomem:
+       svc_rqst_free(rqstp);
+       return NULL;
 }
 
 /**
                node = svc_pool_map_get_node(chosen_pool->sp_id);
 
                rqstp = svc_prepare_thread(serv, chosen_pool, node);
-               if (IS_ERR(rqstp))
-                       return PTR_ERR(rqstp);
+               if (!rqstp)
+                       return -ENOMEM;
                task = kthread_create_on_node(serv->sv_threadfn, rqstp,
                                              node, "%s", serv->sv_name);
                if (IS_ERR(task)) {