Skip to content

Commit

Permalink
fix(multipathd.service): remove dependency on systemd-udev-settle
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
mwilck authored and johannbg committed Feb 2, 2022
1 parent 3f2c76b commit 371b338
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions modules.d/90multipath/multipathd.service
@@ -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
Expand Down

0 comments on commit 371b338

Please sign in to comment.