- if (rc == LDLM_FL_BL_AST) {
- rc = ldlm_cli_cancel_req(lock->l_conn_export, &cancels, 1, 0);
- } else if (rc == LDLM_FL_CANCELING) {
- struct ldlm_namespace *ns = lock->l_resource->lr_namespace;
- int avail = ldlm_cancel_handles_avail(lock->l_conn_export);
- int flags, cancel;
- LASSERT(avail > 0);
-
- flags = ns_connect_lru_resize(ns) ?
- LDLM_CANCEL_LRUR : LDLM_CANCEL_AGED;
- cancel = ns_connect_lru_resize(ns) ? 0 : 1;
-
- cancel += ldlm_cancel_lru_local(ns, &cancels, 0,
- avail - cancel, flags);
- ldlm_cli_cancel_list(&cancels, cancel, NULL, 0, 0);
- }
- if (rc != LDLM_FL_CANCELING)
- LDLM_LOCK_PUT(lock);
- RETURN(rc < 0 ? rc : 0);
+ ns = lock->l_resource->lr_namespace;
+ flags = ns_connect_lru_resize(ns) ? LDLM_CANCEL_LRUR : LDLM_CANCEL_AGED;
+ count += ldlm_cancel_lru_local(ns, &cancels, 0, avail - count,
+ LDLM_FL_BL_AST, flags);
+ ldlm_cli_cancel_list(&cancels, count, NULL, 0, 0);
+ RETURN(0);