aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfsd/nfsctl.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index caf4fdc674c0..e051847b93fb 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -939,17 +939,18 @@ static ssize_t __write_ports_addfd(char *buf)
939 if (err != 0) 939 if (err != 0)
940 return err; 940 return err;
941 941
942 err = svc_addsock(nfsd_serv, fd, buf); 942 err = lockd_up();
943 if (err >= 0) { 943 if (err != 0)
944 err = lockd_up(); 944 goto out;
945 if (err < 0)
946 svc_sock_names(buf + strlen(buf) + 1, nfsd_serv, buf);
947 945
948 /* Decrease the count, but don't shut down the service */ 946 err = svc_addsock(nfsd_serv, fd, buf);
949 nfsd_serv->sv_nrthreads--; 947 if (err < 0)
950 } 948 lockd_down();
951 949
952 return err < 0 ? err : 0; 950out:
951 /* Decrease the count, but don't shut down the service */
952 nfsd_serv->sv_nrthreads--;
953 return err;
953} 954}
954 955
955/* 956/*