NLM: Fix GRANT callback address comparison when IPv6 is enabled
authorChuck Lever <chuck.lever@oracle.com>
Wed, 11 Mar 2009 00:33:20 +0000 (20:33 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 11 Mar 2009 00:33:20 +0000 (20:33 -0400)
commit57df675c60c5cf0748ddba9c7f85afde1530d74d
tree9ee0df8d0b0b2b374bcaf66ead94886f39ac7220
parent78851e1aa4c3b796d5f0bb11b445016726302b44
NLM: Fix GRANT callback address comparison when IPv6 is enabled

The NFS mount command may pass an AF_INET server address to lockd.  If
lockd happens to be using a PF_INET6 listener, the nlm_cmp_addr() in
nlmclnt_grant() will fail to match requests from that host because they
will all have a mapped IPv4 AF_INET6 address.

Adopt the same solution used in nfs_sockaddr_match_ipaddr() for NFSv4
callbacks: if either address is AF_INET, map it to an AF_INET6 address
before doing the comparison.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/lockd/clntlock.c