]> git.pld-linux.org Git - packages/dlm.git/commitdiff
Startup notification for dlm_controld
authorJacek Konieczny <jkonieczny@eggsoft.pl>
Fri, 2 Nov 2012 12:19:30 +0000 (12:19 +0000)
committerJacek Konieczny <jajcus@jajcus.net>
Fri, 2 Nov 2012 12:20:48 +0000 (13:20 +0100)
This allows services depending on the DLM subsystem to be delayed
until dlm_controld finishes initialization.

dlm-startup_notify.patch [new file with mode: 0644]
dlm.spec

diff --git a/dlm-startup_notify.patch b/dlm-startup_notify.patch
new file mode 100644 (file)
index 0000000..6dfa5a8
--- /dev/null
@@ -0,0 +1,94 @@
+diff -dur dlm-3.99.5.orig/dlm_controld/Makefile dlm-3.99.5/dlm_controld/Makefile
+--- dlm-3.99.5.orig/dlm_controld/Makefile      2012-11-02 12:02:11.000000000 +0000
++++ dlm-3.99.5/dlm_controld/Makefile   2012-11-02 12:06:11.064225240 +0000
+@@ -62,7 +62,7 @@
+ all: $(LIB_TARGET) $(BIN_TARGET)
+ $(BIN_TARGET): $(BIN_SOURCE)
+-      $(CC) $(BIN_SOURCE) $(BIN_CFLAGS) $(BIN_LDFLAGS) -o $@ -L.
++      $(CC) $(BIN_SOURCE) $(BIN_CFLAGS) $(BIN_LDFLAGS) -o $@ -L. `pkg-config --cflags --libs libsystemd-daemon`
+ $(LIB_TARGET): $(LIB_SOURCE)
+       $(CC) $^ $(LIB_CFLAGS) $(LIB_LDFLAGS) -shared -fPIC -o $@ -Wl,-soname=$(LIB_SMAJOR)
+diff -dur dlm-3.99.5.orig/dlm_controld/dlm_controld.8 dlm-3.99.5/dlm_controld/dlm_controld.8
+--- dlm-3.99.5.orig/dlm_controld/dlm_controld.8        2012-06-21 21:53:56.000000000 +0000
++++ dlm-3.99.5/dlm_controld/dlm_controld.8     2012-11-02 12:06:38.448225240 +0000
+@@ -23,6 +23,9 @@
+ .B --daemon_debug | -D
+         enable debugging to stderr and don't fork
++.B --foreground
++        don't fork
++
+ .B --log_debug | -K
+         enable kernel dlm debugging messages
+diff -dur dlm-3.99.5.orig/dlm_controld/dlm_daemon.h dlm-3.99.5/dlm_controld/dlm_daemon.h
+--- dlm-3.99.5.orig/dlm_controld/dlm_daemon.h  2012-11-02 12:02:11.000000000 +0000
++++ dlm-3.99.5/dlm_controld/dlm_daemon.h       2012-11-02 12:08:31.937225240 +0000
+@@ -109,6 +109,7 @@
+         enable_quorum_lockspace_ind,
+         help_ind,
+         version_ind,
++        foreground_ind,
+         dlm_options_max,
+ };
+diff -dur dlm-3.99.5.orig/dlm_controld/main.c dlm-3.99.5/dlm_controld/main.c
+--- dlm-3.99.5.orig/dlm_controld/main.c        2012-11-02 12:02:11.000000000 +0000
++++ dlm-3.99.5/dlm_controld/main.c     2012-11-02 12:08:51.384225241 +0000
+@@ -13,6 +13,7 @@
+ #include <linux/netlink.h>
+ #include <linux/genetlink.h>
+ #include <linux/dlm_netlink.h>
++#include <systemd/sd-daemon.h>
+ #include "copyright.cf"
+ #include "version.cf"
+@@ -1012,6 +1013,8 @@
+       plock_fd = rv;
+       plock_ci = client_add(rv, process_plocks, NULL);
++      sd_notify(0, "READY=1");
++
+       for (;;) {
+               rv = poll(pollfd, client_maxi + 1, poll_timeout);
+               if (rv == -1 && errno == EINTR) {
+@@ -1245,6 +1248,11 @@
+                       0, NULL,
+                       "enable debugging to stderr and don't fork");
++      set_opt_default(foreground_ind,
++                      "foreground", '\0', no_arg,
++                      0, NULL,
++                      "don't fork");
++
+       set_opt_default(log_debug_ind,
+                       "log_debug", 'K', no_arg,
+                       0, NULL,
+@@ -1562,7 +1570,7 @@
+       INIT_LIST_HEAD(&fs_register_list);
+       init_daemon();
+-      if (!opt(daemon_debug_ind)) {
++      if (!opt(daemon_debug_ind) && !opt(foreground_ind)) {
+               if (daemon(0, 0) < 0) {
+                       perror("daemon error");
+                       exit(EXIT_FAILURE);
+diff -dur dlm-3.99.5.orig/init/dlm.service dlm-3.99.5/init/dlm.service
+--- dlm-3.99.5.orig/init/dlm.service   2012-11-02 12:02:11.000000000 +0000
++++ dlm-3.99.5/init/dlm.service        2012-11-02 12:03:28.498225239 +0000
+@@ -3,10 +3,11 @@
+ After=syslog.target network.target corosync.service sys-kernel-config.mount
+ [Service]
+-Type=forking
++Type=notify
++NotifyAccess=main
+ EnvironmentFile=/etc/sysconfig/dlm
+ ExecStartPre=/sbin/modprobe dlm 
+-ExecStart=/usr/sbin/dlm_controld $DLM_CONTROLD_OPTS
++ExecStart=/usr/sbin/dlm_controld --foreground $DLM_CONTROLD_OPTS
+ #ExecStopPost=/sbin/modprobe -r dlm
+ [Install]
index a51a2a0709500dba93f33f0b4463bbd1a8135771..7a4ada2c700acb2085bc5ede2b65da85eb3b8d2f 100644 (file)
--- a/dlm.spec
+++ b/dlm.spec
@@ -21,10 +21,12 @@ Patch3:             %{name}-mem_init.patch
 Patch4:                %{name}-signals.patch
 Patch5:                0003-dlm_controld-remove-fence_all-from-cli.patch
 Patch6:                dlm_stonith_reboot.patch
+Patch7:                dlm-startup_notify.patch
 URL:           http://sources.redhat.com/cluster/dlm/
 BuildRequires: corosync-devel >= 2.0
 %{?with_dlm_stonith:BuildRequires:     pacemaker-devel >= 1.1}
 BuildRequires: rpmbuild(macros) >= 1.644
+BuildRequires: systemd-devel
 Requires:      %{name}-libs = %{version}-%{release}
 Requires:      rc-scripts
 Requires:      systemd-units >= 38
@@ -77,6 +79,7 @@ Pliki nagłówkowe i dokumentacja programisty dla DLM-a.
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
 
 %build
 %{__make} \
This page took 0.087761 seconds and 4 git commands to generate.