diff options
-rw-r--r-- | fs/nfsd/nfsctl.c | 19 |
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; | 950 | out: |
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 | /* |