Jeff Mahoney
2006-Jan-09 17:42 UTC
[Ocfs2-devel] [PATCH] ocfs2: actually free hb set on cluster removal
This patch actually frees the hb set when the cluster dir is removed. Since heartbeat threads are stopped when the individual heartbeat sets are removed, this just cleans up the allocation. fs/ocfs2/cluster/nodemanager.c | 1 + 1 files changed, 1 insertion(+) Signed-off-by: Jeff Mahoney <jeffm at suse.com> diff -ruNpX dontdiff linux-2.6.15-staging2/fs/ocfs2/cluster/nodemanager.c linux-2.6.15-ocfs2/fs/ocfs2/cluster/nodemanager.c --- linux-2.6.15-staging2/fs/ocfs2/cluster/nodemanager.c 2006-01-08 20:07:52.077646720 -0500 +++ linux-2.6.15-ocfs2/fs/ocfs2/cluster/nodemanager.c 2006-01-08 18:08:59.630943432 -0500 @@ -685,6 +685,7 @@ static void o2nm_cluster_group_drop_item BUG_ON(o2nm_single_cluster != cluster); o2nm_single_cluster = NULL; + o2hb_free_hb_set(cluster->cl_group.default_groups[1]); for (i = 0; cluster->cl_group.default_groups[i]; i++) { killme = &cluster->cl_group.default_groups[i]->cg_item; cluster->cl_group.default_groups[i] = NULL; -- Jeff Mahoney SuSE Labs
Mark Fasheh
2006-Jan-09 21:45 UTC
[Ocfs2-devel] [PATCH] ocfs2: actually free hb set on cluster removal
Hi, On Mon, Jan 09, 2006 at 12:42:35PM -0500, Jeff Mahoney wrote:> Since heartbeat threads are stopped when the individual heartbeat sets are > removed, this just cleans up the allocation.Yes, it seems we're leaking memory there.> + o2hb_free_hb_set(cluster->cl_group.default_groups[1]); > for (i = 0; cluster->cl_group.default_groups[i]; i++) { > killme = &cluster->cl_group.default_groups[i]->cg_item; > cluster->cl_group.default_groups[i] = NULL;What about the for loop on the next line? Won't that try to access memory freed in the call to o2hb_free_hb_set(...)? --Mark -- Mark Fasheh Senior Software Developer, Oracle mark.fasheh at oracle.com