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

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

NLM: Refactor make_socks() function



Clean up: extract common logic in NLM's make_socks() function
into a helper.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent 55ef1274
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -204,6 +204,19 @@ lockd(void *vrqstp)
	return 0;
}

static int create_lockd_listener(struct svc_serv *serv, char *name,
				 unsigned short port)
{
	struct svc_xprt *xprt;

	xprt = svc_find_xprt(serv, name, 0, 0);
	if (xprt == NULL)
		return svc_create_xprt(serv, name, port, SVC_SOCK_DEFAULTS);

	svc_xprt_put(xprt);
	return 0;
}

/*
 * Ensure there are active UDP and TCP listeners for lockd.
 *
@@ -217,23 +230,11 @@ lockd(void *vrqstp)
static int make_socks(struct svc_serv *serv)
{
	static int warned;
	struct svc_xprt *xprt;
	int err = 0;

	xprt = svc_find_xprt(serv, "udp", 0, 0);
	if (!xprt)
		err = svc_create_xprt(serv, "udp", nlm_udpport,
				      SVC_SOCK_DEFAULTS);
	else
		svc_xprt_put(xprt);
	if (err >= 0) {
		xprt = svc_find_xprt(serv, "tcp", 0, 0);
		if (!xprt)
			err = svc_create_xprt(serv, "tcp", nlm_tcpport,
					      SVC_SOCK_DEFAULTS);
		else
			svc_xprt_put(xprt);
	}
	err = create_lockd_listener(serv, "udp", nlm_udpport);
	if (err >= 0)
		err = create_lockd_listener(serv, "tcp", nlm_tcpport);
	if (err >= 0) {
		warned = 0;
		err = 0;