Commit 663b8858 authored by Trond Myklebust's avatar Trond Myklebust

SUNRPC: Reconnect immediately whenever the server isn't refusing it.

If we've disconnected from the server, rather than the other way round,
then it makes little sense to wait 3 seconds before reconnecting.
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 62da3b24
...@@ -1130,13 +1130,13 @@ static void xs_tcp_state_change(struct sock *sk) ...@@ -1130,13 +1130,13 @@ static void xs_tcp_state_change(struct sock *sk)
transport->tcp_flags = transport->tcp_flags =
TCP_RCV_COPY_FRAGHDR | TCP_RCV_COPY_XID; TCP_RCV_COPY_FRAGHDR | TCP_RCV_COPY_XID;
xprt->reestablish_timeout = XS_TCP_INIT_REEST_TO;
xprt_wake_pending_tasks(xprt, 0); xprt_wake_pending_tasks(xprt, 0);
} }
spin_unlock_bh(&xprt->transport_lock); spin_unlock_bh(&xprt->transport_lock);
break; break;
case TCP_FIN_WAIT1: case TCP_FIN_WAIT1:
/* The client initiated a shutdown of the socket */ /* The client initiated a shutdown of the socket */
xprt->reestablish_timeout = 0;
set_bit(XPRT_CLOSING, &xprt->state); set_bit(XPRT_CLOSING, &xprt->state);
smp_mb__before_clear_bit(); smp_mb__before_clear_bit();
clear_bit(XPRT_CONNECTED, &xprt->state); clear_bit(XPRT_CONNECTED, &xprt->state);
...@@ -1147,6 +1147,14 @@ static void xs_tcp_state_change(struct sock *sk) ...@@ -1147,6 +1147,14 @@ static void xs_tcp_state_change(struct sock *sk)
/* The server initiated a shutdown of the socket */ /* The server initiated a shutdown of the socket */
set_bit(XPRT_CLOSING, &xprt->state); set_bit(XPRT_CLOSING, &xprt->state);
xprt_force_disconnect(xprt); xprt_force_disconnect(xprt);
case TCP_SYN_SENT:
case TCP_CLOSING:
/*
* If the server closed down the connection, make sure that
* we back off before reconnecting
*/
if (xprt->reestablish_timeout < XS_TCP_INIT_REEST_TO)
xprt->reestablish_timeout = XS_TCP_INIT_REEST_TO;
break; break;
case TCP_LAST_ACK: case TCP_LAST_ACK:
smp_mb__before_clear_bit(); smp_mb__before_clear_bit();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment