cluster: STABLE3 - gfs_controld: cpg_finalize
David Teigland
teigland@fedoraproject.org
Fri Feb 27 19:44:00 GMT 2009
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=6c2304bf9a67deadab50c67904d22debcbde6250
Commit: 6c2304bf9a67deadab50c67904d22debcbde6250
Parent: 82a80f5d7a3d6da4dc4cb14b314546129c291c32
Author: David Teigland <teigland@redhat.com>
AuthorDate: Fri Feb 27 13:41:12 2009 -0600
Committer: David Teigland <teigland@redhat.com>
CommitterDate: Fri Feb 27 13:41:12 2009 -0600
gfs_controld: cpg_finalize
Call cpg_finalize on all our cpg handles when shutting down.
Signed-off-by: David Teigland <teigland@redhat.com>
---
group/gfs_controld/cpg-new.c | 11 ++++++++++-
group/gfs_controld/cpg-old.c | 6 +++++-
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/group/gfs_controld/cpg-new.c b/group/gfs_controld/cpg-new.c
index 9d8d5dd..ed02931 100644
--- a/group/gfs_controld/cpg-new.c
+++ b/group/gfs_controld/cpg-new.c
@@ -3236,12 +3236,15 @@ int setup_cpg(void)
void close_cpg(void)
{
+ struct mountgroup *mg;
cpg_error_t error;
struct cpg_name name;
int i = 0;
- if (!cpg_handle_daemon || cluster_down)
+ if (!cpg_handle_daemon)
return;
+ if (cluster_down)
+ goto fin;
memset(&name, 0, sizeof(name));
sprintf(name.value, "gfs:controld");
@@ -3257,6 +3260,12 @@ void close_cpg(void)
}
if (error != CPG_OK)
log_error("daemon cpg_leave error %d", error);
+ fin:
+ list_for_each_entry(mg, &mountgroups, list) {
+ if (mg->cpg_handle)
+ cpg_finalize(mg->cpg_handle);
+ }
+ cpg_finalize(cpg_handle_daemon);
}
int setup_dlmcontrol(void)
diff --git a/group/gfs_controld/cpg-old.c b/group/gfs_controld/cpg-old.c
index b353867..6daaa9a 100644
--- a/group/gfs_controld/cpg-old.c
+++ b/group/gfs_controld/cpg-old.c
@@ -2421,8 +2421,10 @@ void close_cpg_old(void)
cpg_error_t error;
int i = 0;
- if (!cpg_handle_daemon || cluster_down)
+ if (!cpg_handle_daemon)
return;
+ if (cluster_down)
+ goto fin;
memset(&name, 0, sizeof(name));
strcpy(name.value, "gfs_controld");
@@ -2438,5 +2440,7 @@ void close_cpg_old(void)
}
if (error != CPG_OK)
log_error("daemon cpg_leave error %d", error);
+ fin:
+ cpg_finalize(cpg_handle_daemon);
}
More information about the Cluster-cvs
mailing list