From 5bc62a496e907aa78ab36967b2f029394d5050c2 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Mon, 13 Mar 2006 14:26:12 -0800 Subject: [PATCH] --- yaml --- r: 21024 b: refs/heads/master c: 3759fa9c55923f719ae944a3f8fbb029b36f759d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv6/inet6_hashtables.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index c96035e33dfb..013841c8972c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c33d4568aca9028a22857f94f5e0850012b6444b +refs/heads/master: 3759fa9c55923f719ae944a3f8fbb029b36f759d diff --git a/trunk/net/ipv6/inet6_hashtables.c b/trunk/net/ipv6/inet6_hashtables.c index 4154f3a8b6cf..bb8ffb8a14c5 100644 --- a/trunk/net/ipv6/inet6_hashtables.c +++ b/trunk/net/ipv6/inet6_hashtables.c @@ -87,7 +87,7 @@ static int __inet6_check_established(struct inet_timewait_death_row *death_row, struct inet_timewait_sock **twp) { struct inet_hashinfo *hinfo = death_row->hashinfo; - const struct inet_sock *inet = inet_sk(sk); + struct inet_sock *inet = inet_sk(sk); const struct ipv6_pinfo *np = inet6_sk(sk); const struct in6_addr *daddr = &np->rcv_saddr; const struct in6_addr *saddr = &np->daddr; @@ -129,6 +129,10 @@ static int __inet6_check_established(struct inet_timewait_death_row *death_row, } unique: + /* Must record num and sport now. Otherwise we will see + * in hash table socket with a funny identity. */ + inet->num = lport; + inet->sport = htons(lport); BUG_TRAP(sk_unhashed(sk)); __sk_add_node(sk, &head->chain); sk->sk_hash = hash;