From 62d8ef889373587fe936bab628e9d151e8f1466a Mon Sep 17 00:00:00 2001 From: "Mr. NeilBrown" Date: Tue, 16 Nov 2021 11:11:22 -0500 Subject: [PATCH] LU-12511 ldlm: free resource when ldlm_lock_create() fails. ldlm_lock_create() gets a resource, but don't put it on all failure paths. It should. Change-Id: Ib49bcafdeac834c412adad9db135034d1ea06a04 Signed-off-by: Mr. NeilBrown Signed-off-by: Greg Kroah-Hartman Reviewed-on: https://review.whamcloud.com/45585 Tested-by: jenkins Reviewed-by: Olaf Faaland-LLNL Reviewed-by: Andriy Skulysh Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/ldlm/ldlm_lock.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lustre/ldlm/ldlm_lock.c b/lustre/ldlm/ldlm_lock.c index d9b1ca2..3ceadc9 100644 --- a/lustre/ldlm/ldlm_lock.c +++ b/lustre/ldlm/ldlm_lock.c @@ -1672,8 +1672,10 @@ struct ldlm_lock *ldlm_lock_create(struct ldlm_namespace *ns, RETURN(ERR_CAST(res)); lock = ldlm_lock_new(res); - if (lock == NULL) + if (!lock) { + ldlm_resource_putref(res); RETURN(ERR_PTR(-ENOMEM)); + } lock->l_req_mode = mode; lock->l_ast_data = data; -- 1.8.3.1