From: Trond Myklebust Date: Wed, 11 Mar 2009 18:38:03 +0000 (-0400) Subject: SUNRPC: Add the equivalent of the linger and linger2 timeouts to RPC sockets X-Git-Tag: v2.6.30-rc1~415^2^2~32 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d1e8255cf959fba7ee2317550dfde39f0b936ae;p=pandora-kernel.git SUNRPC: Add the equivalent of the linger and linger2 timeouts to RPC sockets This fixes a regression against FreeBSD servers as reported by Tomas Kasparek. Apparently when using RPC over a TCP socket, the FreeBSD servers don't ever react to the client closing the socket, and so commit e06799f958bf7f9f8fae15f0c6f519953fb0257c (SUNRPC: Use shutdown() instead of close() when disconnecting a TCP socket) causes the setup to hang forever whenever the client attempts to close and then reconnect. We break the deadlock by adding a 'linger2' style timeout to the socket, after which, the client will abort the connection using a TCP 'RST'. The default timeout is set to 15 seconds. A subsequent patch will put it under user control by means of a systctl. Signed-off-by: Trond Myklebust --- Reading git-diff-tree failed