SUNRPC: Respond promptly to server TCP resets
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 28 Oct 2008 19:21:39 +0000 (15:21 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 28 Oct 2008 19:21:39 +0000 (15:21 -0400)
commit2a9e1cfa23fb62da37739af81127dab5af095d99
tree3fdb86f69ea598163f7096e1f85fd8f5c86bb896
parente946217e4fdaa67681bbabfa8e6b18641921f750
SUNRPC: Respond promptly to server TCP resets

If the server sends us an RST error while we're in the TCP_ESTABLISHED
state, then that will not result in a state change, and so the RPC client
ends up hanging forever (see
http://bugzilla.kernel.org/show_bug.cgi?id=11154)

We can intercept the reset by setting up an sk->sk_error_report callback,
which will then allow us to initiate a proper shutdown and retry...

We also make sure that if the send request receives an ECONNRESET, then we
shutdown too...

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/xprtsock.c