@@ -693,6 +693,7 @@ static ssize_t __write_ports_addfd(char *buf, struct net *net, const struct cred
693693 char * mesg = buf ;
694694 int fd , err ;
695695 struct nfsd_net * nn = net_generic (net , nfsd_net_id );
696+ struct svc_serv * serv ;
696697
697698 err = get_int (& mesg , & fd );
698699 if (err != 0 || fd < 0 )
@@ -703,15 +704,15 @@ static ssize_t __write_ports_addfd(char *buf, struct net *net, const struct cred
703704 if (err != 0 )
704705 return err ;
705706
706- err = svc_addsock (nn -> nfsd_serv , net , fd , buf , SIMPLE_TRANSACTION_LIMIT , cred );
707+ serv = nn -> nfsd_serv ;
708+ err = svc_addsock (serv , net , fd , buf , SIMPLE_TRANSACTION_LIMIT , cred );
707709
708- if (err < 0 && !nn -> nfsd_serv -> sv_nrthreads && !nn -> keep_active )
710+ if (err < 0 && !serv -> sv_nrthreads && !nn -> keep_active )
709711 nfsd_last_thread (net );
710- else if (err >= 0 &&
711- !nn -> nfsd_serv -> sv_nrthreads && !xchg (& nn -> keep_active , 1 ))
712- svc_get (nn -> nfsd_serv );
712+ else if (err >= 0 && !serv -> sv_nrthreads && !xchg (& nn -> keep_active , 1 ))
713+ svc_get (serv );
713714
714- nfsd_put ( net );
715+ svc_put ( serv );
715716 return err ;
716717}
717718
@@ -725,6 +726,7 @@ static ssize_t __write_ports_addxprt(char *buf, struct net *net, const struct cr
725726 struct svc_xprt * xprt ;
726727 int port , err ;
727728 struct nfsd_net * nn = net_generic (net , nfsd_net_id );
729+ struct svc_serv * serv ;
728730
729731 if (sscanf (buf , "%15s %5u" , transport , & port ) != 2 )
730732 return - EINVAL ;
@@ -737,32 +739,33 @@ static ssize_t __write_ports_addxprt(char *buf, struct net *net, const struct cr
737739 if (err != 0 )
738740 return err ;
739741
740- err = svc_xprt_create (nn -> nfsd_serv , transport , net ,
742+ serv = nn -> nfsd_serv ;
743+ err = svc_xprt_create (serv , transport , net ,
741744 PF_INET , port , SVC_SOCK_ANONYMOUS , cred );
742745 if (err < 0 )
743746 goto out_err ;
744747
745- err = svc_xprt_create (nn -> nfsd_serv , transport , net ,
748+ err = svc_xprt_create (serv , transport , net ,
746749 PF_INET6 , port , SVC_SOCK_ANONYMOUS , cred );
747750 if (err < 0 && err != - EAFNOSUPPORT )
748751 goto out_close ;
749752
750- if (!nn -> nfsd_serv -> sv_nrthreads && !xchg (& nn -> keep_active , 1 ))
751- svc_get (nn -> nfsd_serv );
753+ if (!serv -> sv_nrthreads && !xchg (& nn -> keep_active , 1 ))
754+ svc_get (serv );
752755
753- nfsd_put ( net );
756+ svc_put ( serv );
754757 return 0 ;
755758out_close :
756- xprt = svc_find_xprt (nn -> nfsd_serv , transport , net , PF_INET , port );
759+ xprt = svc_find_xprt (serv , transport , net , PF_INET , port );
757760 if (xprt != NULL ) {
758761 svc_xprt_close (xprt );
759762 svc_xprt_put (xprt );
760763 }
761764out_err :
762- if (!nn -> nfsd_serv -> sv_nrthreads && !nn -> keep_active )
765+ if (!serv -> sv_nrthreads && !nn -> keep_active )
763766 nfsd_last_thread (net );
764767
765- nfsd_put ( net );
768+ svc_put ( serv );
766769 return err ;
767770}
768771
0 commit comments