summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-07-31 22:32:09 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2006-08-02 13:38:24 -0700
commit52499afe40387524e9f46ef9ce4695efccdd2ed9 (patch)
treeeb097a1c4150ff00a66a692f378ea4fb6f1035f0 /block
parenta280b89982f48e9a32c6410a37419b12ca88af6b (diff)
downloadlinux-3.10-52499afe40387524e9f46ef9ce4695efccdd2ed9.tar.gz
linux-3.10-52499afe40387524e9f46ef9ce4695efccdd2ed9.tar.bz2
linux-3.10-52499afe40387524e9f46ef9ce4695efccdd2ed9.zip
[TCP]: Process linger2 timeout consistently.
Based upon guidance from Alexey Kuznetsov. When linger2 is active, we check to see if the fin_wait2 timeout is longer than the timewait. If it is, we schedule the keepalive timer for the difference between the timewait timeout and the fin_wait2 timeout. When this orphan socket is seen by tcp_keepalive_timer() it will try to transform this fin_wait2 socket into a fin_wait2 mini-socket, again if linger2 is active. Not all paths were setting this initial keepalive timer correctly. The tcp input path was doing it correctly, but tcp_close() wasn't, potentially making the socket linger longer than it really needs to. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions