summaryrefslogtreecommitdiff
path: root/include/linux/sunrpc/clnt.h
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2013-01-28 23:41:07 +0400
committerJ. Bruce Fields <bfields@redhat.com>2013-02-04 18:16:19 +0400
commit7b9e8522a65886d8ae168547a67c3617b6ba83f1 (patch)
tree285c0d08f3e967abb7e3c33e4846da353270183b /include/linux/sunrpc/clnt.h
parent885c91f74662404dc179b8775494df383479311c (diff)
downloadlinux-7b9e8522a65886d8ae168547a67c3617b6ba83f1.tar.xz
nfsd: fix IPv6 address handling in the DRC
Currently, it only stores the first 16 bytes of any address. struct sockaddr_in6 is 28 bytes however, so we're currently ignoring the last 12 bytes of the address. Expand the c_addr field to a sockaddr_in6, and cast it to a sockaddr_in as necessary. Also fix the comparitor to use the existing RPC helpers for this. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'include/linux/sunrpc/clnt.h')
-rw-r--r--include/linux/sunrpc/clnt.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
index 34206b84d8da..47354a25a927 100644
--- a/include/linux/sunrpc/clnt.h
+++ b/include/linux/sunrpc/clnt.h
@@ -263,7 +263,9 @@ static inline bool __rpc_copy_addr6(struct sockaddr *dst,
* @sap1: first sockaddr
* @sap2: second sockaddr
*
- * Just compares the family and address portion. Ignores port, scope, etc.
+ * Just compares the family and address portion. Ignores port, but
+ * compares the scope if it's a link-local address.
+ *
* Returns true if the addrs are equal, false if they aren't.
*/
static inline bool rpc_cmp_addr(const struct sockaddr *sap1,