RPC: TCP reconnects are too slow Users have reported that NFS/TCP mount points take too long when recovering from a network partition or server reboot/failover. When the network layer reports a connection close, the RPC task waiting to reconnect should be notified so it can retry immediately instead of waiting for the normal connection establishment timeout. This reverts a change made in 2.6.6 as part of adding client support for RPC over TCP socket idle timeouts. Test-plan: Destructive testing with NFS over TCP mounts. Version: Fri, 29 Apr 2005 15:31:46 -0400 Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust --- xprt.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) Index: linux-2.6.12/net/sunrpc/xprt.c =================================================================== --- linux-2.6.12.orig/net/sunrpc/xprt.c +++ linux-2.6.12/net/sunrpc/xprt.c @@ -1101,8 +1101,7 @@ tcp_state_change(struct sock *sk) case TCP_SYN_RECV: break; default: - if (xprt_test_and_clear_connected(xprt)) - rpc_wake_up_status(&xprt->pending, -ENOTCONN); + xprt_disconnect(xprt); break; } out: