NFSD: move lockd_up() before svc_addsock()
Clean up. A couple of years ago, a series of commits, finishing with commit 5680c446, swapped the order of the lockd_up() and svc_addsock() calls in __write_ports(). At that time lockd_up() needed to know the transport protocol of the passed-in socket to start a listener on the same transport protocol. These days, lockd_up() doesn't take a protocol argument; it always starts both a UDP and TCP listener. It's now more straightforward to try the lockd_up() first, then do a lockd_down() if the svc_addsock() fails. Careful review of this code shows that the svc_sock_names() call is used only to close the just-opened socket in case lockd_up() fails. So it is no longer needed if lockd_up() is done first. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
parent
0a5372d8a1
commit
ea068bad27
@ -939,17 +939,18 @@ static ssize_t __write_ports_addfd(char *buf)
|
||||
if (err != 0)
|
||||
return err;
|
||||
|
||||
err = lockd_up();
|
||||
if (err != 0)
|
||||
goto out;
|
||||
|
||||
err = svc_addsock(nfsd_serv, fd, buf);
|
||||
if (err >= 0) {
|
||||
err = lockd_up();
|
||||
if (err < 0)
|
||||
svc_sock_names(buf + strlen(buf) + 1, nfsd_serv, buf);
|
||||
if (err < 0)
|
||||
lockd_down();
|
||||
|
||||
/* Decrease the count, but don't shut down the service */
|
||||
nfsd_serv->sv_nrthreads--;
|
||||
}
|
||||
|
||||
return err < 0 ? err : 0;
|
||||
out:
|
||||
/* Decrease the count, but don't shut down the service */
|
||||
nfsd_serv->sv_nrthreads--;
|
||||
return err;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user