]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix(multipathd.service): remove dependency on systemd-udev-settle
authorMartin Wilck <mwilck@suse.com>
Tue, 7 Dec 2021 10:43:26 +0000 (11:43 +0100)
committerJóhann B. Guðmundsson <johannbg@gmail.com>
Wed, 2 Feb 2022 22:47:25 +0000 (22:47 +0000)
The dependency of multipathd on "udev settle" has recently been removed in
c9689b6 ("multipathd: Remove dependency on systemd-udev-settle.service").

But this dependency has never been necessary in the initramfs environment. It
was only required after switching root, because multipathd would potentially
tear down valid multipath maps after switching from initrd to root FS. This can
happen because dm devices "survive" the root FS switch in the udev data
base (they have the "db_persist" flag set), whereas their component devices
(SCSI etc) do not. But this can only happen after initrd-udevadm-cleanup-db.service
has been run, which happens after initrd processing.

The only dependency that's really needed is that on
systemd-udevd-kernel.socket, because multipathd depends on uevents for
devices being delivered via systemd-udevd.

modules.d/90multipath/multipathd.service

index 75c51305ea1aa20dcba58d3702748af9dd3d1d91..a09e0c4e3f54d6a7fa8994c49ac3f47bf8c60a26 100644 (file)
@@ -1,9 +1,10 @@
 [Unit]
 Description=Device-Mapper Multipath Device Controller
 Before=iscsi.service iscsid.service lvm2-activation-early.service
-Wants=systemd-udev-trigger.service systemd-udev-settle.service local-fs-pre.target
-After=systemd-udev-trigger.service systemd-udev-settle.service
+Wants=local-fs-pre.target
 Before=local-fs-pre.target
+Wants=systemd-udevd-kernel.socket
+After=systemd-udevd-kernel.socket
 Before=initrd-cleanup.service
 DefaultDependencies=no
 Conflicts=shutdown.target