diff mbox series

multipathd.service: add dependency on systemd-udevd-kernel.socket

Message ID 20211202104812.27529-1-mwilck@suse.com (mailing list archive)
State Not Applicable, archived
Delegated to: christophe varoqui
Headers show
Series multipathd.service: add dependency on systemd-udevd-kernel.socket | expand

Commit Message

Martin Wilck Dec. 2, 2021, 10:48 a.m. UTC
From: Martin Wilck <mwilck@suse.com>

Since f42d918 ("multipathd: Remove dependency on
systemd-udev-settle.service"), multipathd has no dependencies on
udev any more. In reality, multipathd depends quite heavily on udev.

multipathd startup succeeds indeed if udevd isn't running. Connecting to the
udev monitor netlink socket works, too, and if udevd is started later on,
multipathd will receive events over this socket. multipathd doesn't connect to
the udev control socket, but it does attempt to trigger uevents using
sysfs. For these events to be processed, the udev kernel socket must be
listening. For that, it's sufficient to depend on systemd-udevd-kernel.socket,
which will start udevd on demand if it isn't running.

Signed-off-by: Martin Wilck <mwilck@suse.com>

---
Note: I'd like to get this merged into the current upstream PR.
---
 multipathd/multipathd.service | 2 ++
 1 file changed, 2 insertions(+)

Comments

Benjamin Marzinski Dec. 2, 2021, 5:16 p.m. UTC | #1
On Thu, Dec 02, 2021 at 11:48:12AM +0100, mwilck@suse.com wrote:
> From: Martin Wilck <mwilck@suse.com>
> 
> Since f42d918 ("multipathd: Remove dependency on
> systemd-udev-settle.service"), multipathd has no dependencies on
> udev any more. In reality, multipathd depends quite heavily on udev.
> 
> multipathd startup succeeds indeed if udevd isn't running. Connecting to the
> udev monitor netlink socket works, too, and if udevd is started later on,
> multipathd will receive events over this socket. multipathd doesn't connect to
> the udev control socket, but it does attempt to trigger uevents using
> sysfs. For these events to be processed, the udev kernel socket must be
> listening. For that, it's sufficient to depend on systemd-udevd-kernel.socket,
> which will start udevd on demand if it isn't running.
> 
> Signed-off-by: Martin Wilck <mwilck@suse.com>
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
> 
> ---
> Note: I'd like to get this merged into the current upstream PR.
> ---
>  multipathd/multipathd.service | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
> index 87cb534..1919b38 100644
> --- a/multipathd/multipathd.service
> +++ b/multipathd/multipathd.service
> @@ -2,6 +2,8 @@
>  Description=Device-Mapper Multipath Device Controller
>  Before=iscsi.service iscsid.service lvm2-activation-early.service
>  Before=local-fs-pre.target blk-availability.service shutdown.target
> +Wants=systemd-udevd-kernel.socket
> +After=systemd-udevd-kernel.socket
>  After=multipathd.socket systemd-remount-fs.service
>  DefaultDependencies=no
>  Conflicts=shutdown.target
> -- 
> 2.34.0

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
diff mbox series

Patch

diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
index 87cb534..1919b38 100644
--- a/multipathd/multipathd.service
+++ b/multipathd/multipathd.service
@@ -2,6 +2,8 @@ 
 Description=Device-Mapper Multipath Device Controller
 Before=iscsi.service iscsid.service lvm2-activation-early.service
 Before=local-fs-pre.target blk-availability.service shutdown.target
+Wants=systemd-udevd-kernel.socket
+After=systemd-udevd-kernel.socket
 After=multipathd.socket systemd-remount-fs.service
 DefaultDependencies=no
 Conflicts=shutdown.target