diff -ruN linux/net/sunrpc/xprt.c linux.reconnect/net/sunrpc/xprt.c
--- linux/net/sunrpc/xprt.c	Wed Oct 30 19:54:43 2002
+++ linux.reconnect/net/sunrpc/xprt.c	Wed Oct 30 20:51:26 2002
@@ -504,6 +504,8 @@
 	dprintk("RPC: %4d xprt_reconn_timeout %d\n",
 				task->tk_pid, task->tk_status);
 
+	if (task->tk_status)
+		xprt_close(xprt);
 	spin_lock(&xprt_lock);
 	xprt->connecting = 0;
 	rpc_wake_up(&xprt->reconn);
