aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_input.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@ghostprotocols.net>2005-08-09 23:11:56 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 18:49:29 -0400
commit295f7324ff8d9ea58b4d3ec93b1aaa1d80e048a9 (patch)
tree509c113d2622a28836303590ba1a40cecea59d3b /net/ipv4/tcp_input.c
parent0a5578cf8e5e045aaa68643c17ce885426697c6b (diff)
[ICSK]: Introduce reqsk_queue_prune from code in tcp_synack_timer
With this we're very close to getting all of the current TCP refactorings in my dccp-2.6 tree merged, next changeset will export some functions needed by the current DCCP code and then dccp-2.6.git will be born! Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r--net/ipv4/tcp_input.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index b35badf53aa5..71d456148de7 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3831,6 +3831,7 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
3831 tcp_parse_options(skb, &tp->rx_opt, 0); 3831 tcp_parse_options(skb, &tp->rx_opt, 0);
3832 3832
3833 if (th->ack) { 3833 if (th->ack) {
3834 struct inet_connection_sock *icsk;
3834 /* rfc793: 3835 /* rfc793:
3835 * "If the state is SYN-SENT then 3836 * "If the state is SYN-SENT then
3836 * first check the ACK bit 3837 * first check the ACK bit
@@ -3956,7 +3957,11 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
3956 sk_wake_async(sk, 0, POLL_OUT); 3957 sk_wake_async(sk, 0, POLL_OUT);
3957 } 3958 }
3958 3959
3959 if (sk->sk_write_pending || tp->defer_accept || inet_csk(sk)->icsk_ack.pingpong) { 3960 icsk = inet_csk(sk);
3961
3962 if (sk->sk_write_pending ||
3963 icsk->icsk_accept_queue.rskq_defer_accept ||
3964 icsk->icsk_ack.pingpong) {
3960 /* Save one ACK. Data will be ready after 3965 /* Save one ACK. Data will be ready after
3961 * several ticks, if write_pending is set. 3966 * several ticks, if write_pending is set.
3962 * 3967 *
@@ -3965,8 +3970,8 @@ static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
3965 * to stand against the temptation 8) --ANK 3970 * to stand against the temptation 8) --ANK
3966 */ 3971 */
3967 inet_csk_schedule_ack(sk); 3972 inet_csk_schedule_ack(sk);
3968 inet_csk(sk)->icsk_ack.lrcvtime = tcp_time_stamp; 3973 icsk->icsk_ack.lrcvtime = tcp_time_stamp;
3969 inet_csk(sk)->icsk_ack.ato = TCP_ATO_MIN; 3974 icsk->icsk_ack.ato = TCP_ATO_MIN;
3970 tcp_incr_quickack(sk); 3975 tcp_incr_quickack(sk);
3971 tcp_enter_quickack_mode(sk); 3976 tcp_enter_quickack_mode(sk);
3972 inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK, 3977 inet_csk_reset_xmit_timer(sk, ICSK_TIME_DACK,