diff options
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
-rw-r--r-- | net/ipv4/tcp_minisocks.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index 267cea1087e5..f29e2f6ebe1b 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
@@ -60,12 +60,11 @@ int tcp_tw_count; | |||
60 | /* Must be called with locally disabled BHs. */ | 60 | /* Must be called with locally disabled BHs. */ |
61 | static void tcp_timewait_kill(struct tcp_tw_bucket *tw) | 61 | static void tcp_timewait_kill(struct tcp_tw_bucket *tw) |
62 | { | 62 | { |
63 | struct inet_ehash_bucket *ehead; | ||
64 | struct inet_bind_hashbucket *bhead; | 63 | struct inet_bind_hashbucket *bhead; |
65 | struct inet_bind_bucket *tb; | 64 | struct inet_bind_bucket *tb; |
66 | |||
67 | /* Unlink from established hashes. */ | 65 | /* Unlink from established hashes. */ |
68 | ehead = &tcp_ehash[tw->tw_hashent]; | 66 | struct inet_ehash_bucket *ehead = &tcp_hashinfo.ehash[tw->tw_hashent]; |
67 | |||
69 | write_lock(&ehead->lock); | 68 | write_lock(&ehead->lock); |
70 | if (hlist_unhashed(&tw->tw_node)) { | 69 | if (hlist_unhashed(&tw->tw_node)) { |
71 | write_unlock(&ehead->lock); | 70 | write_unlock(&ehead->lock); |
@@ -76,12 +75,12 @@ static void tcp_timewait_kill(struct tcp_tw_bucket *tw) | |||
76 | write_unlock(&ehead->lock); | 75 | write_unlock(&ehead->lock); |
77 | 76 | ||
78 | /* Disassociate with bind bucket. */ | 77 | /* Disassociate with bind bucket. */ |
79 | bhead = &tcp_bhash[inet_bhashfn(tw->tw_num, tcp_bhash_size)]; | 78 | bhead = &tcp_hashinfo.bhash[inet_bhashfn(tw->tw_num, tcp_hashinfo.bhash_size)]; |
80 | spin_lock(&bhead->lock); | 79 | spin_lock(&bhead->lock); |
81 | tb = tw->tw_tb; | 80 | tb = tw->tw_tb; |
82 | __hlist_del(&tw->tw_bind_node); | 81 | __hlist_del(&tw->tw_bind_node); |
83 | tw->tw_tb = NULL; | 82 | tw->tw_tb = NULL; |
84 | inet_bind_bucket_destroy(tcp_bucket_cachep, tb); | 83 | inet_bind_bucket_destroy(tcp_hashinfo.bind_bucket_cachep, tb); |
85 | spin_unlock(&bhead->lock); | 84 | spin_unlock(&bhead->lock); |
86 | 85 | ||
87 | #ifdef SOCK_REFCNT_DEBUG | 86 | #ifdef SOCK_REFCNT_DEBUG |
@@ -297,13 +296,13 @@ kill: | |||
297 | static void __tcp_tw_hashdance(struct sock *sk, struct tcp_tw_bucket *tw) | 296 | static void __tcp_tw_hashdance(struct sock *sk, struct tcp_tw_bucket *tw) |
298 | { | 297 | { |
299 | const struct inet_sock *inet = inet_sk(sk); | 298 | const struct inet_sock *inet = inet_sk(sk); |
300 | struct inet_ehash_bucket *ehead = &tcp_ehash[sk->sk_hashent]; | 299 | struct inet_ehash_bucket *ehead = &tcp_hashinfo.ehash[sk->sk_hashent]; |
301 | struct inet_bind_hashbucket *bhead; | 300 | struct inet_bind_hashbucket *bhead; |
302 | /* Step 1: Put TW into bind hash. Original socket stays there too. | 301 | /* Step 1: Put TW into bind hash. Original socket stays there too. |
303 | Note, that any socket with inet->num != 0 MUST be bound in | 302 | Note, that any socket with inet->num != 0 MUST be bound in |
304 | binding cache, even if it is closed. | 303 | binding cache, even if it is closed. |
305 | */ | 304 | */ |
306 | bhead = &tcp_bhash[inet_bhashfn(inet->num, tcp_bhash_size)]; | 305 | bhead = &tcp_hashinfo.bhash[inet_bhashfn(inet->num, tcp_hashinfo.bhash_size)]; |
307 | spin_lock(&bhead->lock); | 306 | spin_lock(&bhead->lock); |
308 | tw->tw_tb = inet->bind_hash; | 307 | tw->tw_tb = inet->bind_hash; |
309 | BUG_TRAP(inet->bind_hash); | 308 | BUG_TRAP(inet->bind_hash); |
@@ -317,7 +316,7 @@ static void __tcp_tw_hashdance(struct sock *sk, struct tcp_tw_bucket *tw) | |||
317 | sock_prot_dec_use(sk->sk_prot); | 316 | sock_prot_dec_use(sk->sk_prot); |
318 | 317 | ||
319 | /* Step 3: Hash TW into TIMEWAIT half of established hash table. */ | 318 | /* Step 3: Hash TW into TIMEWAIT half of established hash table. */ |
320 | tw_add_node(tw, &(ehead + tcp_ehash_size)->chain); | 319 | tw_add_node(tw, &(ehead + tcp_hashinfo.ehash_size)->chain); |
321 | atomic_inc(&tw->tw_refcnt); | 320 | atomic_inc(&tw->tw_refcnt); |
322 | 321 | ||
323 | write_unlock(&ehead->lock); | 322 | write_unlock(&ehead->lock); |