These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / fs / nfsd / nfssvc.c
index 9277cc9..ad4e237 100644 (file)
@@ -391,6 +391,14 @@ static int nfsd_get_default_max_blksize(void)
        return ret;
 }
 
+static struct svc_serv_ops nfsd_thread_sv_ops = {
+       .svo_shutdown           = nfsd_last_thread,
+       .svo_function           = nfsd,
+       .svo_enqueue_xprt       = svc_xprt_do_enqueue,
+       .svo_setup              = svc_set_num_threads,
+       .svo_module             = THIS_MODULE,
+};
+
 int nfsd_create_serv(struct net *net)
 {
        int error;
@@ -405,7 +413,7 @@ int nfsd_create_serv(struct net *net)
                nfsd_max_blksize = nfsd_get_default_max_blksize();
        nfsd_reset_versions();
        nn->nfsd_serv = svc_create_pooled(&nfsd_program, nfsd_max_blksize,
-                                     nfsd_last_thread, nfsd, THIS_MODULE);
+                                               &nfsd_thread_sv_ops);
        if (nn->nfsd_serv == NULL)
                return -ENOMEM;
 
@@ -500,8 +508,8 @@ int nfsd_set_nrthreads(int n, int *nthreads, struct net *net)
        /* apply the new numbers */
        svc_get(nn->nfsd_serv);
        for (i = 0; i < n; i++) {
-               err = svc_set_num_threads(nn->nfsd_serv, &nn->nfsd_serv->sv_pools[i],
-                                         nthreads[i]);
+               err = nn->nfsd_serv->sv_ops->svo_setup(nn->nfsd_serv,
+                               &nn->nfsd_serv->sv_pools[i], nthreads[i]);
                if (err)
                        break;
        }
@@ -540,7 +548,8 @@ nfsd_svc(int nrservs, struct net *net)
        error = nfsd_startup_net(nrservs, net);
        if (error)
                goto out_destroy;
-       error = svc_set_num_threads(nn->nfsd_serv, NULL, nrservs);
+       error = nn->nfsd_serv->sv_ops->svo_setup(nn->nfsd_serv,
+                       NULL, nrservs);
        if (error)
                goto out_shutdown;
        /* We are holding a reference to nn->nfsd_serv which