diff options
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
-rw-r--r-- | net/ipv4/tcp_minisocks.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index 6d8795b066ac..def765911ff8 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
@@ -162,9 +162,9 @@ kill_with_rst: | |||
162 | if (tcp_death_row.sysctl_tw_recycle && | 162 | if (tcp_death_row.sysctl_tw_recycle && |
163 | tcptw->tw_ts_recent_stamp && | 163 | tcptw->tw_ts_recent_stamp && |
164 | tcp_tw_remember_stamp(tw)) | 164 | tcp_tw_remember_stamp(tw)) |
165 | inet_twsk_schedule(tw, tw->tw_timeout); | 165 | inet_twsk_reschedule(tw, tw->tw_timeout); |
166 | else | 166 | else |
167 | inet_twsk_schedule(tw, TCP_TIMEWAIT_LEN); | 167 | inet_twsk_reschedule(tw, TCP_TIMEWAIT_LEN); |
168 | return TCP_TW_ACK; | 168 | return TCP_TW_ACK; |
169 | } | 169 | } |
170 | 170 | ||
@@ -201,7 +201,7 @@ kill: | |||
201 | return TCP_TW_SUCCESS; | 201 | return TCP_TW_SUCCESS; |
202 | } | 202 | } |
203 | } | 203 | } |
204 | inet_twsk_schedule(tw, TCP_TIMEWAIT_LEN); | 204 | inet_twsk_reschedule(tw, TCP_TIMEWAIT_LEN); |
205 | 205 | ||
206 | if (tmp_opt.saw_tstamp) { | 206 | if (tmp_opt.saw_tstamp) { |
207 | tcptw->tw_ts_recent = tmp_opt.rcv_tsval; | 207 | tcptw->tw_ts_recent = tmp_opt.rcv_tsval; |
@@ -251,7 +251,7 @@ kill: | |||
251 | * Do not reschedule in the last case. | 251 | * Do not reschedule in the last case. |
252 | */ | 252 | */ |
253 | if (paws_reject || th->ack) | 253 | if (paws_reject || th->ack) |
254 | inet_twsk_schedule(tw, TCP_TIMEWAIT_LEN); | 254 | inet_twsk_reschedule(tw, TCP_TIMEWAIT_LEN); |
255 | 255 | ||
256 | return tcp_timewait_check_oow_rate_limit( | 256 | return tcp_timewait_check_oow_rate_limit( |
257 | tw, skb, LINUX_MIB_TCPACKSKIPPEDTIMEWAIT); | 257 | tw, skb, LINUX_MIB_TCPACKSKIPPEDTIMEWAIT); |
@@ -322,9 +322,6 @@ void tcp_time_wait(struct sock *sk, int state, int timeo) | |||
322 | } while (0); | 322 | } while (0); |
323 | #endif | 323 | #endif |
324 | 324 | ||
325 | /* Linkage updates. */ | ||
326 | __inet_twsk_hashdance(tw, sk, &tcp_hashinfo); | ||
327 | |||
328 | /* Get the TIME_WAIT timeout firing. */ | 325 | /* Get the TIME_WAIT timeout firing. */ |
329 | if (timeo < rto) | 326 | if (timeo < rto) |
330 | timeo = rto; | 327 | timeo = rto; |
@@ -338,6 +335,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo) | |||
338 | } | 335 | } |
339 | 336 | ||
340 | inet_twsk_schedule(tw, timeo); | 337 | inet_twsk_schedule(tw, timeo); |
338 | /* Linkage updates. */ | ||
339 | __inet_twsk_hashdance(tw, sk, &tcp_hashinfo); | ||
341 | inet_twsk_put(tw); | 340 | inet_twsk_put(tw); |
342 | } else { | 341 | } else { |
343 | /* Sorry, if we're out of memory, just CLOSE this | 342 | /* Sorry, if we're out of memory, just CLOSE this |