]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.14.60/staging-lustre-ldlm-free-resource-when-ldlm_lock_create-fails.patch
Fixes for 5.10
[thirdparty/kernel/stable-queue.git] / releases / 4.14.60 / staging-lustre-ldlm-free-resource-when-ldlm_lock_create-fails.patch
CommitLineData
a65d4bac
GKH
1From foo@baz Sat Jul 28 10:25:26 CEST 2018
2From: NeilBrown <neilb@suse.com>
3Date: Thu, 29 Mar 2018 15:26:48 +1100
4Subject: staging: lustre: ldlm: free resource when ldlm_lock_create() fails.
5
6From: NeilBrown <neilb@suse.com>
7
8[ Upstream commit d8caf662b4aeeb2ac83ac0b22e40db88e9360c77 ]
9
10ldlm_lock_create() gets a resource, but don't put it on
11all failure paths. It should.
12
13Signed-off-by: NeilBrown <neilb@suse.com>
14Reviewed-by: James Simmons <jsimmons@infradead.org>
15Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
16Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
17Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
18---
19 drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 6 +++++-
20 1 file changed, 5 insertions(+), 1 deletion(-)
21
22--- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
23+++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
24@@ -1571,8 +1571,10 @@ struct ldlm_lock *ldlm_lock_create(struc
25 return ERR_CAST(res);
26
27 lock = ldlm_lock_new(res);
28- if (!lock)
29+ if (!lock) {
30+ ldlm_resource_putref(res);
31 return ERR_PTR(-ENOMEM);
32+ }
33
34 lock->l_req_mode = mode;
35 lock->l_ast_data = data;
36@@ -1615,6 +1617,8 @@ out:
37 return ERR_PTR(rc);
38 }
39
40+
41+
42 /**
43 * Enqueue (request) a lock.
44 * On the client this is called from ldlm_cli_enqueue_fini