Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a5372d8 authored by Chuck Lever's avatar Chuck Lever Committed by J. Bruce Fields
Browse files

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: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent c71206a7
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -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);