Commit 19f7e2ca44dfc3c1b3f499fc46801f98d403500f

Authored by Stanislav Kinsbursky
Committed by J. Bruce Fields
1 parent a007c4c3e9

NFSd: introduce nfsd_destroy() helper

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>

Showing 3 changed files with 14 additions and 17 deletions Side-by-side Diff

... ... @@ -673,9 +673,7 @@
673 673  
674 674 err = svc_addsock(nfsd_serv, fd, buf, SIMPLE_TRANSACTION_LIMIT);
675 675 if (err < 0) {
676   - if (nfsd_serv->sv_nrthreads == 1)
677   - svc_shutdown_net(nfsd_serv, net);
678   - svc_destroy(nfsd_serv);
  676 + nfsd_destroy(net);
679 677 return err;
680 678 }
681 679  
... ... @@ -744,9 +742,7 @@
744 742 svc_xprt_put(xprt);
745 743 }
746 744 out_err:
747   - if (nfsd_serv->sv_nrthreads == 1)
748   - svc_shutdown_net(nfsd_serv, net);
749   - svc_destroy(nfsd_serv);
  745 + nfsd_destroy(net);
750 746 return err;
751 747 }
752 748  
... ... @@ -75,6 +75,15 @@
75 75 int nfsd_pool_stats_open(struct inode *, struct file *);
76 76 int nfsd_pool_stats_release(struct inode *, struct file *);
77 77  
  78 +static inline void nfsd_destroy(struct net *net)
  79 +{
  80 + int destroy = (nfsd_serv->sv_nrthreads == 1);
  81 +
  82 + if (destroy)
  83 + svc_shutdown_net(nfsd_serv, net);
  84 + svc_destroy(nfsd_serv);
  85 +}
  86 +
78 87 #if defined(CONFIG_NFSD_V2_ACL) || defined(CONFIG_NFSD_V3_ACL)
79 88 #ifdef CONFIG_NFSD_V2_ACL
80 89 extern struct svc_version nfsd_acl_version2;
... ... @@ -427,11 +427,7 @@
427 427 if (err)
428 428 break;
429 429 }
430   -
431   - if (nfsd_serv->sv_nrthreads == 1)
432   - svc_shutdown_net(nfsd_serv, net);
433   - svc_destroy(nfsd_serv);
434   -
  430 + nfsd_destroy(net);
435 431 return err;
436 432 }
437 433  
... ... @@ -478,9 +474,7 @@
478 474 if (error < 0 && !nfsd_up_before)
479 475 nfsd_shutdown();
480 476 out_destroy:
481   - if (nfsd_serv->sv_nrthreads == 1)
482   - svc_shutdown_net(nfsd_serv, net);
483   - svc_destroy(nfsd_serv); /* Release server */
  477 + nfsd_destroy(net); /* Release server */
484 478 out:
485 479 mutex_unlock(&nfsd_mutex);
486 480 return error;
... ... @@ -682,9 +676,7 @@
682 676  
683 677 mutex_lock(&nfsd_mutex);
684 678 /* this function really, really should have been called svc_put() */
685   - if (nfsd_serv->sv_nrthreads == 1)
686   - svc_shutdown_net(nfsd_serv, net);
687   - svc_destroy(nfsd_serv);
  679 + nfsd_destroy(net);
688 680 mutex_unlock(&nfsd_mutex);
689 681 return ret;
690 682 }