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: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
parent
205ba42308
commit
d6783b2b6c
|
@ -243,11 +243,9 @@ static int make_socks(struct svc_serv *serv)
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out_err;
|
goto out_err;
|
||||||
|
|
||||||
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
|
|
||||||
err = create_lockd_family(serv, PF_INET6);
|
err = create_lockd_family(serv, PF_INET6);
|
||||||
if (err < 0 && err != -EAFNOSUPPORT)
|
if (err < 0 && err != -EAFNOSUPPORT)
|
||||||
goto out_err;
|
goto out_err;
|
||||||
#endif /* CONFIG_IPV6 || CONFIG_IPV6_MODULE */
|
|
||||||
|
|
||||||
warned = 0;
|
warned = 0;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -118,7 +118,6 @@ nfs4_callback_up(struct svc_serv *serv)
|
||||||
dprintk("NFS: Callback listener port = %u (af %u)\n",
|
dprintk("NFS: Callback listener port = %u (af %u)\n",
|
||||||
nfs_callback_tcpport, PF_INET);
|
nfs_callback_tcpport, PF_INET);
|
||||||
|
|
||||||
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
|
|
||||||
ret = svc_create_xprt(serv, "tcp", PF_INET6,
|
ret = svc_create_xprt(serv, "tcp", PF_INET6,
|
||||||
nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);
|
nfs_callback_set_tcpport, SVC_SOCK_ANONYMOUS);
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
|
@ -129,7 +128,6 @@ nfs4_callback_up(struct svc_serv *serv)
|
||||||
ret = 0;
|
ret = 0;
|
||||||
else
|
else
|
||||||
goto out_err;
|
goto out_err;
|
||||||
#endif /* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */
|
|
||||||
|
|
||||||
return svc_prepare_thread(serv, &serv->sv_pools[0]);
|
return svc_prepare_thread(serv, &serv->sv_pools[0]);
|
||||||
|
|
||||||
|
|
|
@ -173,11 +173,13 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
|
||||||
.sin_addr.s_addr = htonl(INADDR_ANY),
|
.sin_addr.s_addr = htonl(INADDR_ANY),
|
||||||
.sin_port = htons(port),
|
.sin_port = htons(port),
|
||||||
};
|
};
|
||||||
|
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
|
||||||
struct sockaddr_in6 sin6 = {
|
struct sockaddr_in6 sin6 = {
|
||||||
.sin6_family = AF_INET6,
|
.sin6_family = AF_INET6,
|
||||||
.sin6_addr = IN6ADDR_ANY_INIT,
|
.sin6_addr = IN6ADDR_ANY_INIT,
|
||||||
.sin6_port = htons(port),
|
.sin6_port = htons(port),
|
||||||
};
|
};
|
||||||
|
#endif /* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */
|
||||||
struct sockaddr *sap;
|
struct sockaddr *sap;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
|
@ -186,10 +188,12 @@ static struct svc_xprt *__svc_xpo_create(struct svc_xprt_class *xcl,
|
||||||
sap = (struct sockaddr *)&sin;
|
sap = (struct sockaddr *)&sin;
|
||||||
len = sizeof(sin);
|
len = sizeof(sin);
|
||||||
break;
|
break;
|
||||||
|
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
|
||||||
case PF_INET6:
|
case PF_INET6:
|
||||||
sap = (struct sockaddr *)&sin6;
|
sap = (struct sockaddr *)&sin6;
|
||||||
len = sizeof(sin6);
|
len = sizeof(sin6);
|
||||||
break;
|
break;
|
||||||
|
#endif /* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */
|
||||||
default:
|
default:
|
||||||
return ERR_PTR(-EAFNOSUPPORT);
|
return ERR_PTR(-EAFNOSUPPORT);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue