mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-09 02:51:20 +00:00
svcrdma: Support IPv6 with NFS/RDMA
Allow both IPv4 and IPv6 to bind same port at the same time, restricts use of the IPv6 socket to IPv6 communication. Changes from v1: - Check rdma_set_afonly return value (suggested by Leon Romanovsky) Changes from v2: - Acked-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Shirley Ma <shirley.ma@oracle.com> Acked-by: Leon Romanovsky <leonro@mellanox.com> Reviewed-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
14b7f4a1ed
commit
696190eaf1
@ -789,7 +789,7 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
|
||||
int ret;
|
||||
|
||||
dprintk("svcrdma: Creating RDMA socket\n");
|
||||
if (sa->sa_family != AF_INET) {
|
||||
if ((sa->sa_family != AF_INET) && (sa->sa_family != AF_INET6)) {
|
||||
dprintk("svcrdma: Address family %d is not supported.\n", sa->sa_family);
|
||||
return ERR_PTR(-EAFNOSUPPORT);
|
||||
}
|
||||
@ -805,6 +805,16 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv,
|
||||
goto err0;
|
||||
}
|
||||
|
||||
/* Allow both IPv4 and IPv6 sockets to bind a single port
|
||||
* at the same time.
|
||||
*/
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
ret = rdma_set_afonly(listen_id, 1);
|
||||
if (ret) {
|
||||
dprintk("svcrdma: rdma_set_afonly failed = %d\n", ret);
|
||||
goto err1;
|
||||
}
|
||||
#endif
|
||||
ret = rdma_bind_addr(listen_id, sa);
|
||||
if (ret) {
|
||||
dprintk("svcrdma: rdma_bind_addr failed = %d\n", ret);
|
||||
|
Loading…
Reference in New Issue
Block a user