[dlm/f17] dlm_controld: remove fence_all from cli

David Teigland teigland at fedoraproject.org
Thu Aug 16 20:51:36 UTC 2012


commit b4846039ccc47c1b6d3b70899fa8faccf06c7a49
Author: David Teigland <teigland at redhat.com>
Date:   Thu Aug 16 15:50:53 2012 -0500

    dlm_controld: remove fence_all from cli

 ...d-fix-uninitialized-mem-for-fence_all-con.patch |    2 +-
 0002-dlm_stonith-include-errno.h.patch             |   27 ++++
 0003-dlm_controld-remove-fence_all-from-cli.patch  |  125 ++++++++++++++++++++
 dlm.spec                                           |    9 ++-
 4 files changed, 161 insertions(+), 2 deletions(-)
---
diff --git a/0001-dlm_controld-fix-uninitialized-mem-for-fence_all-con.patch b/0001-dlm_controld-fix-uninitialized-mem-for-fence_all-con.patch
index c3770e7..a696201 100644
--- a/0001-dlm_controld-fix-uninitialized-mem-for-fence_all-con.patch
+++ b/0001-dlm_controld-fix-uninitialized-mem-for-fence_all-con.patch
@@ -1,7 +1,7 @@
 From 5e069a534379611e08714ac81870af6b387a4038 Mon Sep 17 00:00:00 2001
 From: David Teigland <teigland at redhat.com>
 Date: Thu, 16 Aug 2012 11:29:43 -0500
-Subject: [PATCH] dlm_controld: fix uninitialized mem for fence_all config
+Subject: [PATCH 1/3] dlm_controld: fix uninitialized mem for fence_all config
 
 If the fence_all config option is used, this could cause
 unfencing to be used when it shouldn't, which could cause
diff --git a/0002-dlm_stonith-include-errno.h.patch b/0002-dlm_stonith-include-errno.h.patch
new file mode 100644
index 0000000..2311da2
--- /dev/null
+++ b/0002-dlm_stonith-include-errno.h.patch
@@ -0,0 +1,27 @@
+From e8fdd228dfff06967223c7c5a36ed72129c096e7 Mon Sep 17 00:00:00 2001
+From: David Teigland <teigland at redhat.com>
+Date: Thu, 16 Aug 2012 12:51:13 -0500
+Subject: [PATCH 2/3] dlm_stonith: include errno.h
+
+pacemaker header now needs it
+
+Signed-off-by: David Teigland <teigland at redhat.com>
+---
+ fence/stonith_helper.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/fence/stonith_helper.c b/fence/stonith_helper.c
+index df44219..5b384c1 100644
+--- a/fence/stonith_helper.c
++++ b/fence/stonith_helper.c
+@@ -11,6 +11,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <syslog.h>
++#include <errno.h>
+ #include <pacemaker/crm/stonith-ng.h>
+ 
+ int nodeid;
+-- 
+1.7.10.1.362.g242cab3
+
diff --git a/0003-dlm_controld-remove-fence_all-from-cli.patch b/0003-dlm_controld-remove-fence_all-from-cli.patch
new file mode 100644
index 0000000..c265485
--- /dev/null
+++ b/0003-dlm_controld-remove-fence_all-from-cli.patch
@@ -0,0 +1,125 @@
+From 7b0b7b33b052fbd3a5b0cafd8dc134ce2ce713ec Mon Sep 17 00:00:00 2001
+From: David Teigland <teigland at redhat.com>
+Date: Thu, 16 Aug 2012 15:41:12 -0500
+Subject: [PATCH 3/3] dlm_controld: remove fence_all from cli
+
+The fence_all (and unfence_all) options were
+allowed as cli options, and as a fence config.
+This made parsing dlm.conf ambiguous because
+cli options in dlm.conf have x=y syntax, which
+is not the same as the fence config syntax.
+Remove the cli option because the config file
+will be more common/useful.
+
+Signed-off-by: David Teigland <teigland at redhat.com>
+---
+ dlm_controld/daemon_cpg.c |   11 ++---------
+ dlm_controld/dlm.conf.5   |    4 ----
+ dlm_controld/dlm_daemon.h |    2 --
+ dlm_controld/fence.c      |    2 +-
+ dlm_controld/main.c       |   14 ++------------
+ 5 files changed, 5 insertions(+), 28 deletions(-)
+
+diff --git a/dlm_controld/daemon_cpg.c b/dlm_controld/daemon_cpg.c
+index fee0ef6..61d2da2 100644
+--- a/dlm_controld/daemon_cpg.c
++++ b/dlm_controld/daemon_cpg.c
+@@ -455,20 +455,13 @@ static struct node_daemon *add_node_daemon(int nodeid)
+ 	fc = &node->fence_config;
+ 	fc->nodeid = nodeid;
+ 
+-	/* explicit command line arg has first priority */
+-
+-	if (dlm_options[fence_all_ind].cli_set) {
+-		fc->dev[0] = &fence_all_device;
+-		goto out;
+-	}
+-
+-	/* explicit config file setting has second priority */
++	/* explicit config file setting */
+ 
+ 	rv = fence_config_init(fc, (unsigned int)nodeid, (char *)CONF_FILE_PATH);
+ 	if (!rv)
+ 		goto out;
+ 
+-	/* no command line, no config file, so use default */
++	/* no config file setting, so use default */
+ 
+ 	if (rv == -ENOENT) {
+ 		fc->dev[0] = &fence_all_device;
+diff --git a/dlm_controld/dlm.conf.5 b/dlm_controld/dlm.conf.5
+index d722de7..95f74b9 100644
+--- a/dlm_controld/dlm.conf.5
++++ b/dlm_controld/dlm.conf.5
+@@ -65,10 +65,6 @@ enable_quorum_fencing
+ .br
+ enable_quorum_lockspace
+ .br
+-fence_all
+-.br
+-unfence_all
+-.br
+ 
+ .SH Fencing
+ 
+diff --git a/dlm_controld/dlm_daemon.h b/dlm_controld/dlm_daemon.h
+index 7cb3c01..ffd501c 100644
+--- a/dlm_controld/dlm_daemon.h
++++ b/dlm_controld/dlm_daemon.h
+@@ -107,8 +107,6 @@ enum {
+         enable_startup_fencing_ind,
+         enable_quorum_fencing_ind,
+         enable_quorum_lockspace_ind,
+-        fence_all_ind,
+-        unfence_all_ind,
+         help_ind,
+         version_ind,
+         dlm_options_max,
+diff --git a/dlm_controld/fence.c b/dlm_controld/fence.c
+index e53f840..0094b3a 100644
+--- a/dlm_controld/fence.c
++++ b/dlm_controld/fence.c
+@@ -194,7 +194,7 @@ int unfence_node(int nodeid)
+ 	}
+ 	if (rv < 0) {
+ 		/* there's a problem with the config */
+-		log_error("fence config %d error %d", nodeid, rv);
++		log_error("unfence %d fence_config_init error %d", nodeid, rv);
+ 		return rv;
+ 	}
+ 
+diff --git a/dlm_controld/main.c b/dlm_controld/main.c
+index c002520..6eafa49 100644
+--- a/dlm_controld/main.c
++++ b/dlm_controld/main.c
+@@ -1335,16 +1335,6 @@ static void set_opt_defaults(void)
+ 			1, NULL,
+ 			"enable/disable quorum requirement for lockspace operations");
+ 
+-	set_opt_default(fence_all_ind,
+-			"fence_all", '\0', req_arg_str,
+-			-1, "dlm_stonith",
+-			"fence all nodes with this agent");
+-
+-	set_opt_default(unfence_all_ind,
+-			"unfence_all", '\0', no_arg,
+-			0, NULL,
+-			"enable unfencing self with fence_all agent");
+-
+ 	set_opt_default(help_ind,
+ 			"help", 'h', no_arg,
+ 			-1, NULL,
+@@ -1565,8 +1555,8 @@ int main(int argc, char **argv)
+ 	set_opt_file(0);
+ 
+ 	strcpy(fence_all_device.name, "fence_all");
+-	strcpy(fence_all_device.agent, opts(fence_all_ind));
+-	fence_all_device.unfence = opt(unfence_all_ind);
++	strcpy(fence_all_device.agent, "dlm_stonith");
++	fence_all_device.unfence = 0;
+ 
+ 	INIT_LIST_HEAD(&lockspaces);
+ 	INIT_LIST_HEAD(&fs_register_list);
+-- 
+1.7.10.1.362.g242cab3
+
diff --git a/dlm.spec b/dlm.spec
index b9e0b18..27ca732 100644
--- a/dlm.spec
+++ b/dlm.spec
@@ -1,6 +1,6 @@
 Name:           dlm
 Version:        3.99.5
-Release:        2%{?dist}
+Release:        3%{?dist}
 License:        GPLv2 and GPLv2+ and LGPLv2+
 # For a breakdown of the licensing, see README.license
 Group:          System Environment/Kernel
@@ -14,6 +14,8 @@ BuildRequires:  systemd-units
 Source0:	http://people.redhat.com/teigland/%{name}-%{version}.tar.gz
 
 Patch0: 0001-dlm_controld-fix-uninitialized-mem-for-fence_all-con.patch
+Patch1: 0002-dlm_stonith-include-errno.h.patch
+Patch2: 0003-dlm_controld-remove-fence_all-from-cli.patch
 
 %if 0%{?rhel}
 ExclusiveArch: i686 x86_64
@@ -33,6 +35,8 @@ The kernel dlm requires a user daemon to control cluster membership.
 %prep
 %setup -q
 %patch0 -p1 -b .0001-dlm_controld-fix-uninitialized-mem-for-fence_all-con.patch
+%patch1 -p1 -b .0002-dlm_stonith-include-errno.h.patch
+%patch2 -p1 -b .0003-dlm_controld-remove-fence_all-from-cli.patch
 
 %build
 # upstream does not require configure
@@ -112,6 +116,9 @@ developing applications that use %{name}.
 %{_libdir}/pkgconfig/*.pc
 
 %changelog
+* Thu Aug 16 2012 David Teigland <teigland at redhat.com> - 3.99.5-3
+- dlm_controld: remove fence_all from cli
+
 * Thu Aug 16 2012 David Teigland <teigland at redhat.com> - 3.99.5-2
 - dlm_controld: fix uninitialized mem for fence_all config
 


More information about the scm-commits mailing list