diff --git a/lustre/ptlrpc/client.c b/lustre/ptlrpc/client.c
index 1d17038f2d7b474223bc5fdc184aa73b4a8de1a7..57773f6441f31b0f52ec590c04406e7d1e4c1288 100644
--- a/lustre/ptlrpc/client.c
+++ b/lustre/ptlrpc/client.c
@@ -618,7 +618,7 @@ int ptlrpc_check_set(struct ptlrpc_request_set *set)
 {
         unsigned long flags;
         struct list_head *tmp;
-        int sending_error = 0;
+        int force_timer_recalc = 0;
         ENTRY;
 
         if (set->set_remaining == 0)
@@ -632,7 +632,7 @@ int ptlrpc_check_set(struct ptlrpc_request_set *set)
 
                 if (req->rq_phase == RQ_PHASE_NEW &&
                     ptlrpc_send_new_req(req)) {
-                        sending_error = 1;
+                        force_timer_recalc = 1;
                 }
 
                 if (!(req->rq_phase == RQ_PHASE_RPC ||
@@ -726,9 +726,11 @@ int ptlrpc_check_set(struct ptlrpc_request_set *set)
                                 if (rc) {
                                         DEBUG_REQ(D_HA, req, "send failed (%d)",
                                                   rc);
-                                        sending_error = 1;
+                                        force_timer_recalc = 1;
                                         req->rq_timeout = 0;
                                 }
+                                /* need to reset the timeout */
+                                force_timer_recalc = 1;
                         }
 
                         /* Ensure the network callback returned */
@@ -798,7 +800,7 @@ int ptlrpc_check_set(struct ptlrpc_request_set *set)
         }
 
         /* If we hit an error, we want to recover promptly. */
-        RETURN(set->set_remaining == 0 || sending_error);
+        RETURN(set->set_remaining == 0 || force_timer_recalc);
 }
 
 int ptlrpc_expire_one_request(struct ptlrpc_request *req)