NFSD: Finish refactoring __write_ports()

Clean up: Refactor transport name listing out of __write_ports() to
make it easier to understand and maintain.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
Chuck Lever 2009-04-23 19:32:10 -04:00 committed by J. Bruce Fields
parent c71206a7b4
commit 0a5372d8a1
1 changed files with 13 additions and 7 deletions

View File

@ -910,6 +910,17 @@ static ssize_t write_versions(struct file *file, char *buf, size_t size)
return rv;
}
/*
* Zero-length write. Return a list of NFSD's current listener
* transports.
*/
static ssize_t __write_ports_names(char *buf)
{
if (nfsd_serv == NULL)
return 0;
return svc_xprt_names(nfsd_serv, buf, 0);
}
/*
* A single 'fd' number was written, in which case it must be for
* a socket of a supported family/protocol, and we use it as an
@ -1019,13 +1030,8 @@ static ssize_t __write_ports_delxprt(char *buf)
static ssize_t __write_ports(struct file *file, char *buf, size_t size)
{
if (size == 0) {
int len = 0;
if (nfsd_serv)
len = svc_xprt_names(nfsd_serv, buf, 0);
return len;
}
if (size == 0)
return __write_ports_names(buf);
if (isdigit(buf[0]))
return __write_ports_addfd(buf);