if (status) {
if (req->rq_err) {
req->rq_status = status;
+ req->rq_wait_ctx = 0;
force_timer_recalc = 1;
} else {
req->rq_wait_ctx = 1;
struct ptlrpc_request *req =
list_entry(tmp, struct ptlrpc_request, rq_set_chain);
+ /* don't expire request waiting for context */
+ if (req->rq_wait_ctx)
+ continue;
+
/* Request in-flight? */
if (!((req->rq_phase == RQ_PHASE_RPC &&
!req->rq_waiting && !req->rq_resend) ||
*/
spin_lock(&imp->imp_lock);
list_del_init(&req->rq_list);
+ atomic_dec(&imp->imp_inflight);
spin_unlock(&imp->imp_lock);
- CERROR("Failed to refresh ctx of req %p: %d\n", req, rc);
+ CERROR("Failed to refresh ctx of req %p: %d\n",
+ req, rc);
GOTO(out, rc);
}
/* simulating we got error during send rpc */