cluster: STABLE3 - gfs_controld: finalize ckpt handle
David Teigland
teigland@fedoraproject.org
Fri Feb 27 20:31:00 GMT 2009
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=e11f37ab363bb9f6eccefd1022e357d07fd8f5ff
Commit: e11f37ab363bb9f6eccefd1022e357d07fd8f5ff
Parent: 4553dd7afb243f4a3943bb26226b43111a2e7b05
Author: David Teigland <teigland@redhat.com>
AuthorDate: Fri Feb 27 14:03:41 2009 -0600
Committer: David Teigland <teigland@redhat.com>
CommitterDate: Fri Feb 27 14:03:41 2009 -0600
gfs_controld: finalize ckpt handle
when shutting down
Signed-off-by: David Teigland <teigland@redhat.com>
---
group/gfs_controld/gfs_daemon.h | 1 +
group/gfs_controld/main.c | 4 +++-
group/gfs_controld/plock.c | 8 ++++++++
3 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/group/gfs_controld/gfs_daemon.h b/group/gfs_controld/gfs_daemon.h
index 157865a..0bcaab2 100644
--- a/group/gfs_controld/gfs_daemon.h
+++ b/group/gfs_controld/gfs_daemon.h
@@ -299,6 +299,7 @@ void kick_node_from_cluster(int nodeid);
/* plock.c */
int setup_plocks(void);
+void close_plocks(void);
void process_plocks(int ci);
int limit_plocks(void);
void receive_plock(struct mountgroup *mg, char *buf, int len, int from);
diff --git a/group/gfs_controld/main.c b/group/gfs_controld/main.c
index 457a5d6..cb59184 100644
--- a/group/gfs_controld/main.c
+++ b/group/gfs_controld/main.c
@@ -1294,8 +1294,10 @@ static void loop(void)
out:
if (group_mode == GROUP_LIBCPG)
close_cpg();
- else if (group_mode == GROUP_LIBGROUP)
+ else if (group_mode == GROUP_LIBGROUP) {
+ close_plocks();
close_cpg_old();
+ }
if (cfgd_groupd_compat)
close_groupd();
close_logging();
diff --git a/group/gfs_controld/plock.c b/group/gfs_controld/plock.c
index ce17afe..1cff9c4 100644
--- a/group/gfs_controld/plock.c
+++ b/group/gfs_controld/plock.c
@@ -180,6 +180,14 @@ int setup_plocks(void)
return plock_device_fd;
}
+void close_plocks(void)
+{
+ if (ckpt_handle)
+ saCkptFinalize(ckpt_handle);
+ if (plock_device_fd > 0)
+ close(plock_device_fd);
+}
+
/* FIXME: unify these two */
static unsigned long time_diff_ms(struct timeval *begin, struct timeval *end)
More information about the Cluster-cvs
mailing list