Re: [Cluster-devel] [PATCH] dlm: config: Fix ENOMEM failures in make_cluster()

From: Andrew Price
Date: Tue Mar 29 2016 - 11:18:15 EST


On 22/03/16 17:36, Andrew Price wrote:
Commit 1ae1602de0 "configfs: switch ->default groups to a linked list"
left the NULL gps pointer behind after removing the kcalloc() call which
made it non-NULL. It also left the !gps check in place so make_cluster()
now fails with ENOMEM. Remove the remaining uses of the gps variable to
fix that.

Could this go through the linux-dlm tree as a fix for -rc2? The impact is that dlm_controld fails:

dlm_controld[890]: 171 dlm_controld 4.0.4 started
dlm_controld[890]: 171 /sys/kernel/config/dlm/cluster: mkdir failed: 12

so it's pretty important.

Cheers,
Andy


Reviewed-by: Bob Peterson <rpeterso@xxxxxxxxxx>
Reviewed-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx>
Signed-off-by: Andrew Price <anprice@xxxxxxxxxx>
---
fs/dlm/config.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/dlm/config.c b/fs/dlm/config.c
index 5191121..1669f62 100644
--- a/fs/dlm/config.c
+++ b/fs/dlm/config.c
@@ -343,13 +343,12 @@ static struct config_group *make_cluster(struct config_group *g,
struct dlm_cluster *cl = NULL;
struct dlm_spaces *sps = NULL;
struct dlm_comms *cms = NULL;
- void *gps = NULL;

cl = kzalloc(sizeof(struct dlm_cluster), GFP_NOFS);
sps = kzalloc(sizeof(struct dlm_spaces), GFP_NOFS);
cms = kzalloc(sizeof(struct dlm_comms), GFP_NOFS);

- if (!cl || !gps || !sps || !cms)
+ if (!cl || !sps || !cms)
goto fail;

config_group_init_type_name(&cl->group, name, &cluster_type);