@ -449,21 +449,19 @@ xprt_rdma_connect(struct rpc_task *task)
struct rpc_xprt * xprt = ( struct rpc_xprt * ) task - > tk_xprt ;
struct rpcrdma_xprt * r_xprt = rpcx_to_rdmax ( xprt ) ;
if ( ! xprt_test_and_set_connecting ( xprt ) ) {
if ( r_xprt - > rx_ep . rep_connected ! = 0 ) {
/* Reconnect */
schedule_delayed_work ( & r_xprt - > rdma_connect ,
xprt - > reestablish_timeout ) ;
xprt - > reestablish_timeout < < = 1 ;
if ( xprt - > reestablish_timeout > ( 30 * HZ ) )
xprt - > reestablish_timeout = ( 30 * HZ ) ;
else if ( xprt - > reestablish_timeout < ( 5 * HZ ) )
xprt - > reestablish_timeout = ( 5 * HZ ) ;
} else {
schedule_delayed_work ( & r_xprt - > rdma_connect , 0 ) ;
if ( ! RPC_IS_ASYNC ( task ) )
flush_scheduled_work ( ) ;
}
if ( r_xprt - > rx_ep . rep_connected ! = 0 ) {
/* Reconnect */
schedule_delayed_work ( & r_xprt - > rdma_connect ,
xprt - > reestablish_timeout ) ;
xprt - > reestablish_timeout < < = 1 ;
if ( xprt - > reestablish_timeout > ( 30 * HZ ) )
xprt - > reestablish_timeout = ( 30 * HZ ) ;
else if ( xprt - > reestablish_timeout < ( 5 * HZ ) )
xprt - > reestablish_timeout = ( 5 * HZ ) ;
} else {
schedule_delayed_work ( & r_xprt - > rdma_connect , 0 ) ;
if ( ! RPC_IS_ASYNC ( task ) )
flush_scheduled_work ( ) ;
}
}