@@ -693,6 +693,7 @@ static ssize_t __write_ports_addfd(char *buf, struct net *net, const struct cred
693
693
char * mesg = buf ;
694
694
int fd , err ;
695
695
struct nfsd_net * nn = net_generic (net , nfsd_net_id );
696
+ struct svc_serv * serv ;
696
697
697
698
err = get_int (& mesg , & fd );
698
699
if (err != 0 || fd < 0 )
@@ -703,15 +704,15 @@ static ssize_t __write_ports_addfd(char *buf, struct net *net, const struct cred
703
704
if (err != 0 )
704
705
return err ;
705
706
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 );
707
709
708
- if (err < 0 && !nn -> nfsd_serv -> sv_nrthreads && !nn -> keep_active )
710
+ if (err < 0 && !serv -> sv_nrthreads && !nn -> keep_active )
709
711
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 );
713
714
714
- nfsd_put ( net );
715
+ svc_put ( serv );
715
716
return err ;
716
717
}
717
718
@@ -725,6 +726,7 @@ static ssize_t __write_ports_addxprt(char *buf, struct net *net, const struct cr
725
726
struct svc_xprt * xprt ;
726
727
int port , err ;
727
728
struct nfsd_net * nn = net_generic (net , nfsd_net_id );
729
+ struct svc_serv * serv ;
728
730
729
731
if (sscanf (buf , "%15s %5u" , transport , & port ) != 2 )
730
732
return - EINVAL ;
@@ -737,32 +739,33 @@ static ssize_t __write_ports_addxprt(char *buf, struct net *net, const struct cr
737
739
if (err != 0 )
738
740
return err ;
739
741
740
- err = svc_xprt_create (nn -> nfsd_serv , transport , net ,
742
+ serv = nn -> nfsd_serv ;
743
+ err = svc_xprt_create (serv , transport , net ,
741
744
PF_INET , port , SVC_SOCK_ANONYMOUS , cred );
742
745
if (err < 0 )
743
746
goto out_err ;
744
747
745
- err = svc_xprt_create (nn -> nfsd_serv , transport , net ,
748
+ err = svc_xprt_create (serv , transport , net ,
746
749
PF_INET6 , port , SVC_SOCK_ANONYMOUS , cred );
747
750
if (err < 0 && err != - EAFNOSUPPORT )
748
751
goto out_close ;
749
752
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 );
752
755
753
- nfsd_put ( net );
756
+ svc_put ( serv );
754
757
return 0 ;
755
758
out_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 );
757
760
if (xprt != NULL ) {
758
761
svc_xprt_close (xprt );
759
762
svc_xprt_put (xprt );
760
763
}
761
764
out_err :
762
- if (!nn -> nfsd_serv -> sv_nrthreads && !nn -> keep_active )
765
+ if (!serv -> sv_nrthreads && !nn -> keep_active )
763
766
nfsd_last_thread (net );
764
767
765
- nfsd_put ( net );
768
+ svc_put ( serv );
766
769
return err ;
767
770
}
768
771
0 commit comments