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