Blob Blame History Raw
From 78a78e4239e16a033134dde71830d5bb977f6814 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
Date: Thu, 20 Nov 2014 15:56:45 +0100
Subject: [PATCH] 90multipath: install dracut-specific service file

The multipathd package might install a service and a socket
file. Using the original service file from the installed
system without the socket file triggers a bug in systemd,
causing systemd to crash.

As we don't actually need to socket file in the initrd we
should be installing our own service file which does not
reference the socket file at all.

References: bnc#871610

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
 modules.d/90multipath/module-setup.sh    |  7 +++----
 modules.d/90multipath/multipathd.service | 15 +++++++++++++++
 2 files changed, 18 insertions(+), 4 deletions(-)
 create mode 100644 modules.d/90multipath/multipathd.service

diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index 6f4728a..a8700f4 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -104,10 +104,9 @@ install() {
     fi
 
     if dracut_module_included "systemd"; then
-        inst_multiple \
-            $systemdsystemunitdir/multipathd.service
-        mkdir -p "${initdir}${systemdsystemconfdir}/sysinit.target.wants"
-        ln -rfs "${initdir}${systemdsystemunitdir}/multipathd.service" "${initdir}${systemdsystemconfdir}/sysinit.target.wants/multipathd.service"
+        inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service"
+        mkdir -p "${initdir}${systemdsystemunitdir}/sysinit.target.wants"
+        ln -rfs "${initdir}${systemdsystemunitdir}/multipathd.service" "${initdir}${systemdsystemunitdir}/sysinit.target.wants/multipathd.service"
     else
         inst_hook pre-trigger 02 "$moddir/multipathd.sh"
         inst_hook cleanup   02 "$moddir/multipathd-stop.sh"
diff --git a/modules.d/90multipath/multipathd.service b/modules.d/90multipath/multipathd.service
new file mode 100644
index 0000000..44a7b80
--- /dev/null
+++ b/modules.d/90multipath/multipathd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Device-Mapper Multipath Device Controller
+Before=iscsi.service iscsid.service lvm2-activation-early.service
+DefaultDependencies=no
+Conflicts=shutdown.target
+
+[Service]
+Type=simple
+ExecStartPre=/sbin/modprobe dm-multipath
+ExecStart=/sbin/multipathd -s -d
+ExecReload=/sbin/multipathd reconfigure
+ExecStop=/sbin/multipathd shutdown
+
+[Install]
+WantedBy=sysinit.target