inet6: add struct net argument to inet6_ehashfn
authorPavel Emelyanov <xemul@openvz.org>
Tue, 17 Jun 2008 00:13:48 +0000 (17:13 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Jun 2008 00:13:48 +0000 (17:13 -0700)
Same as for inet_hashfn, prepare its ipv6 incarnation.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet6_hashtables.h
net/ipv6/inet6_hashtables.c

index 62a5b691858e0369df0e43ae749ef0aeafcf4871..72f13a9928e4e7a8c0f25298ce4a953ff6684456 100644 (file)
@@ -28,7 +28,8 @@
 struct inet_hashinfo;
 
 /* I have no idea if this is a good hash for v6 or not. -DaveM */
-static inline unsigned int inet6_ehashfn(const struct in6_addr *laddr, const u16 lport,
+static inline unsigned int inet6_ehashfn(struct net *net,
+                               const struct in6_addr *laddr, const u16 lport,
                                const struct in6_addr *faddr, const __be16 fport)
 {
        u32 ports = (lport ^ (__force u16)fport);
@@ -46,7 +47,9 @@ static inline int inet6_sk_ehashfn(const struct sock *sk)
        const struct in6_addr *faddr = &np->daddr;
        const __u16 lport = inet->num;
        const __be16 fport = inet->dport;
-       return inet6_ehashfn(laddr, lport, faddr, fport);
+       struct net *net = sock_net(sk);
+
+       return inet6_ehashfn(net, laddr, lport, faddr, fport);
 }
 
 extern void __inet6_hash(struct sock *sk);
index b940156ca4f5727411d0c19ba433a6045b886054..a9cc8ab33a49c6ebc1660caa684b0a3d775663fd 100644 (file)
@@ -68,7 +68,7 @@ struct sock *__inet6_lookup_established(struct net *net,
        /* Optimize here for direct hit, only listening connections can
         * have wildcards anyways.
         */
-       unsigned int hash = inet6_ehashfn(daddr, hnum, saddr, sport);
+       unsigned int hash = inet6_ehashfn(net, daddr, hnum, saddr, sport);
        struct inet_ehash_bucket *head = inet_ehash_bucket(hashinfo, hash);
        rwlock_t *lock = inet_ehash_lockp(hashinfo, hash);
 
@@ -166,14 +166,14 @@ static int __inet6_check_established(struct inet_timewait_death_row *death_row,
        const struct in6_addr *saddr = &np->daddr;
        const int dif = sk->sk_bound_dev_if;
        const __portpair ports = INET_COMBINED_PORTS(inet->dport, lport);
-       const unsigned int hash = inet6_ehashfn(daddr, lport, saddr,
+       struct net *net = sock_net(sk);
+       const unsigned int hash = inet6_ehashfn(net, daddr, lport, saddr,
                                                inet->dport);
        struct inet_ehash_bucket *head = inet_ehash_bucket(hinfo, hash);
        rwlock_t *lock = inet_ehash_lockp(hinfo, hash);
        struct sock *sk2;
        const struct hlist_node *node;
        struct inet_timewait_sock *tw;
-       struct net *net = sock_net(sk);
 
        prefetch(head->chain.first);
        write_lock(lock);