aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-08-09 23:44:40 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 18:55:48 -0400
commit295ff7edb8f72b77d524759266f7524deae379b3 (patch)
treee16e99e324444fb01ae3dfd221b5d47a88acfeb8 /net/ipv6
parent0b4e03bf0bc43ad6250a1e2fa25fc3eb2b028977 (diff)
[TIMEWAIT]: Introduce inet_timewait_death_row
That groups all of the tables and variables associated to the TCP timewait schedulling/recycling/killing code, that now can be isolated from the TCP specific code and used by other transport protocols, such as DCCP. Next changeset will move this code to net/ipv4/inet_timewait_sock.c Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/tcp_ipv6.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 0b51ec310ebe..1c21ad66cfad 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -521,7 +521,7 @@ unique:
521 NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED); 521 NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED);
522 } else if (tw) { 522 } else if (tw) {
523 /* Silly. Should hash-dance instead... */ 523 /* Silly. Should hash-dance instead... */
524 tcp_tw_deschedule(tw); 524 inet_twsk_deschedule(tw, &tcp_death_row);
525 NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED); 525 NET_INC_STATS_BH(LINUX_MIB_TIMEWAITRECYCLED);
526 526
527 inet_twsk_put(tw); 527 inet_twsk_put(tw);
@@ -611,7 +611,7 @@ ok:
611 spin_unlock(&head->lock); 611 spin_unlock(&head->lock);
612 612
613 if (tw) { 613 if (tw) {
614 tcp_tw_deschedule(tw); 614 inet_twsk_deschedule(tw, &tcp_death_row);
615 inet_twsk_put(tw); 615 inet_twsk_put(tw);
616 } 616 }
617 617
@@ -1820,8 +1820,9 @@ do_time_wait:
1820 1820
1821 sk2 = tcp_v6_lookup_listener(&skb->nh.ipv6h->daddr, ntohs(th->dest), tcp_v6_iif(skb)); 1821 sk2 = tcp_v6_lookup_listener(&skb->nh.ipv6h->daddr, ntohs(th->dest), tcp_v6_iif(skb));
1822 if (sk2 != NULL) { 1822 if (sk2 != NULL) {
1823 tcp_tw_deschedule((struct inet_timewait_sock *)sk); 1823 struct inet_timewait_sock *tw = inet_twsk(sk);
1824 inet_twsk_put((struct inet_timewait_sock *)sk); 1824 inet_twsk_deschedule(tw, &tcp_death_row);
1825 inet_twsk_put(tw);
1825 sk = sk2; 1826 sk = sk2;
1826 goto process; 1827 goto process;
1827 } 1828 }