unlock_res_and_lock(lock);
newres = ldlm_resource_get(ns, NULL, new_resid, type, 1);
- if (newres == NULL) {
- LBUG();
+ if (newres == NULL)
RETURN(-ENOMEM);
- }
lock_res_and_lock(lock);
LASSERT(memcmp(new_resid, &lock->l_resource->lr_name,
&lock->l_resource->lr_name,
sizeof(lock->l_resource->lr_name)) != 0) {
unlock_res_and_lock(lock);
- ldlm_lock_change_resource(ns, lock,
- &dlm_req->lock_desc.l_resource.lr_name);
+ if (ldlm_lock_change_resource(ns, lock,
+ &dlm_req->lock_desc.l_resource.lr_name) != 0) {
+ LDLM_ERROR(lock, "Failed to allocate resource");
+ LDLM_LOCK_PUT(lock);
+ EXIT;
+ return;
+ }
LDLM_DEBUG(lock, "completion AST, new resource");
CERROR("change resource!\n");
lock_res_and_lock(lock);
(long)lock->l_resource->lr_name.name[1],
(long)lock->l_resource->lr_name.name[2]);
- ldlm_lock_change_resource(ns, lock,
- &reply->lock_desc.l_resource.lr_name);
- if (lock->l_resource == NULL) {
- LBUG();
+ rc = ldlm_lock_change_resource(ns, lock,
+ &reply->lock_desc.l_resource.lr_name);
+ if (rc || lock->l_resource == NULL)
GOTO(cleanup, rc = -ENOMEM);
- }
LDLM_DEBUG(lock, "client-side enqueue, new resource");
}
if (with_policy)