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

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

SUNRPC: Bury "#ifdef IPV6" in svc_create_xprt()



Clean up:  Bruce observed we have more or less common logic in each of
svc_create_xprt()'s callers:  the check to create an IPv6 RPC listener
socket only if CONFIG_IPV6 is set.  I'm about to add another case
that does just the same.

If we move the ifdefs into __svc_xpo_create(), then svc_create_xprt()
call sites can get rid of the "#ifdef" ugliness, and can use the same
logic with or without IPv6 support available in the kernel.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent 205ba423
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -243,11 +243,9 @@ static int make_socks(struct svc_serv *serv)
	if (err < 0)
		goto out_err;

#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
	err = create_lockd_family(serv, PF_INET6);
	if (err < 0 && err != -EAFNOSUPPORT)
		goto out_err;
#endif	/* CONFIG_IPV6 || CONFIG_IPV6_MODULE */

	warned = 0;
	return 0;
+0 −2
Original line number Diff line number Diff line
@@ -118,7 +118,6 @@ nfs4_callback_up(struct svc_serv *serv)
	dprintk("NFS: Callback listener port = %u (af %u)\n",
			nfs_callback_tcpport, PF_INET);

#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
	ret = svc_create_xprt(serv, "tcp", PF_INET6,
				nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);
	if (ret > 0) {
@@ -129,7 +128,6 @@ nfs4_callback_up(struct svc_serv *serv)
		ret = 0;
	else
		goto out_err;
#endif	/* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */

	return svc_prepare_thread(serv, &serv->sv_pools[0]);

+4 −0
Original line number Diff line number Diff line
@@ -173,11 +173,13 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
		.sin_addr.s_addr	= htonl(INADDR_ANY),
		.sin_port		= htons(port),
	};
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
	struct sockaddr_in6 sin6 = {
		.sin6_family		= AF_INET6,
		.sin6_addr		= IN6ADDR_ANY_INIT,
		.sin6_port		= htons(port),
	};
#endif	/* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */
	struct sockaddr *sap;
	size_t len;

@@ -186,10 +188,12 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
		sap = (struct sockaddr *)&sin;
		len = sizeof(sin);
		break;
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
	case PF_INET6:
		sap = (struct sockaddr *)&sin6;
		len = sizeof(sin6);
		break;
#endif	/* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */
	default:
		return ERR_PTR(-EAFNOSUPPORT);
	}