IPv6 support for NFS server export caches
This adds IPv6 support to the interfaces that are used to express nfsd exports. All addressed are stored internally as IPv6; backwards compatibility is maintained using mapped addresses. Thanks to Bruce Fields, Brian Haley, Neil Brown and Hideaki Joshifuji for comments Signed-off-by: Aurelien Charbon <aurelien.charbon@bull.net> Cc: Neil Brown <neilb@suse.de> Cc: Brian Haley <brian.haley@hp.com> Cc: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
committed by
J. Bruce Fields
parent
d751a7cd06
commit
f15364bd4c
@ -35,6 +35,7 @@
|
||||
#include <linux/lockd/bind.h>
|
||||
#include <linux/sunrpc/msg_prot.h>
|
||||
#include <linux/sunrpc/gss_api.h>
|
||||
#include <net/ipv6.h>
|
||||
|
||||
#define NFSDDBG_FACILITY NFSDDBG_EXPORT
|
||||
|
||||
@ -1548,6 +1549,7 @@ exp_addclient(struct nfsctl_client *ncp)
|
||||
{
|
||||
struct auth_domain *dom;
|
||||
int i, err;
|
||||
struct in6_addr addr6;
|
||||
|
||||
/* First, consistency check. */
|
||||
err = -EINVAL;
|
||||
@ -1566,9 +1568,10 @@ exp_addclient(struct nfsctl_client *ncp)
|
||||
goto out_unlock;
|
||||
|
||||
/* Insert client into hashtable. */
|
||||
for (i = 0; i < ncp->cl_naddr; i++)
|
||||
auth_unix_add_addr(ncp->cl_addrlist[i], dom);
|
||||
|
||||
for (i = 0; i < ncp->cl_naddr; i++) {
|
||||
ipv6_addr_set_v4mapped(ncp->cl_addrlist[i].s_addr, &addr6);
|
||||
auth_unix_add_addr(&addr6, dom);
|
||||
}
|
||||
auth_unix_forget_old(dom);
|
||||
auth_domain_put(dom);
|
||||
|
||||
|
Reference in New Issue
Block a user