From: Mr. NeilBrown Date: Tue, 16 Nov 2021 16:11:22 +0000 (-0500) Subject: LU-12511 ldlm: free resource when ldlm_lock_create() fails. X-Git-Tag: 2.14.56~51 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=62d8ef889373587fe936bab628e9d151e8f1466a;p=fs%2Flustre-release.git 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 --- 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;