From: David S. Miller Date: Tue, 1 Aug 2006 05:32:09 +0000 (-0700) Subject: [TCP]: Process linger2 timeout consistently. X-Git-Tag: v2.6.18-rc4~65^2~15 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52499afe40387524e9f46ef9ce4695efccdd2ed9;p=pandora-kernel.git [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 --- Reading git-diff-tree failed