spin_unlock(&cli->cl_loi_list_lock);
rc = l_wait_event(mcw.mcw_waitq, mdc_req_avail(cli, &mcw),
&lwi);
+ if (rc) {
+ spin_lock(&cli->cl_loi_list_lock);
+ if (list_empty(&mcw.mcw_entry))
+ cli->cl_r_in_flight--;
+ list_del_init(&mcw.mcw_entry);
+ spin_unlock(&cli->cl_loi_list_lock);
+ }
} else {
cli->cl_r_in_flight++;
spin_unlock(&cli->cl_loi_list_lock);
rc = ldlm_cli_enqueue(exp, &req, einfo, res_id, &policy, &flags,
NULL, 0, NULL, lockh, 0);
mdc_exit_request(&obddev->u.cli);
+ if (rc < 0)
+ CERROR("ldlm_cli_enqueue error: %d\n", rc);
}
mdc_put_rpc_lock(obddev->u.cli.cl_rpc_lock, it);
if (rc < 0) {
- CERROR("ldlm_cli_enqueue: %d\n", rc);
mdc_clear_replay_flag(req, rc);
ptlrpc_req_finished(req);
RETURN(rc);