|
@@ -1551,8 +1551,10 @@ struct ldlm_lock *ldlm_lock_create(struct ldlm_namespace *ns,
|
|
return ERR_CAST(res);
|
|
return ERR_CAST(res);
|
|
|
|
|
|
lock = ldlm_lock_new(res);
|
|
lock = ldlm_lock_new(res);
|
|
- if (!lock)
|
|
|
|
|
|
+ if (!lock) {
|
|
|
|
+ ldlm_resource_putref(res);
|
|
return ERR_PTR(-ENOMEM);
|
|
return ERR_PTR(-ENOMEM);
|
|
|
|
+ }
|
|
|
|
|
|
lock->l_req_mode = mode;
|
|
lock->l_req_mode = mode;
|
|
lock->l_ast_data = data;
|
|
lock->l_ast_data = data;
|
|
@@ -1595,6 +1597,8 @@ out:
|
|
return ERR_PTR(rc);
|
|
return ERR_PTR(rc);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Enqueue (request) a lock.
|
|
* Enqueue (request) a lock.
|
|
* On the client this is called from ldlm_cli_enqueue_fini
|
|
* On the client this is called from ldlm_cli_enqueue_fini
|