From ad9f35c0bf8a71c6a4b7586d7553b8e9d171f48e Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Tue, 7 Mar 2023 10:24:01 +0100 Subject: [PATCH] fabrics: Fix ordering for auto connect services In order to be able to mount file systems via /etc/fstab we have to make sure that the corresponding auto connect services have been executed. Because the mounting of the local filesystem happens very early in the boot we have to carefully sort these service file into the boot process. First, we have to disable the DefaultDependency as this will automatically add dependency on sysinit.target which is too late (after local mounts). Though without the default dependency we have to provide a Before and After conditions. The Before is simple as we have a local-fs-pre target. The After is a bit tricky as there are no targets available. Because the whole autoconnect machinery depends on udev events being delivered we place the service after systemd-udevd has been started. Link: https://www.freedesktop.org/software/systemd/man/bootup.html Reported-by: Maurizio Lombardi Reported-by: Wen Xiong Tested-by: Maurizio Lombardi Tested-by: Wen Xiong Signed-off-by: Daniel Wagner --- nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in | 3 +++ nvmf-autoconnect/systemd/nvmf-connect@.service.in | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service index 33ab8c1f..7036625c 100644 --- a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service +++ b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service @@ -1,6 +1,9 @@ [Unit] Description=Auto-connect to subsystems on FC-NVME devices found during boot ConditionPathExists=/sys/class/fc/fc_udev_device/nvme_discovery +DefaultDependencies=no +After=systemd-udevd.service +Before=local-fs-pre.target [Service] Type=oneshot diff --git a/nvmf-autoconnect/systemd/nvmf-connect@.service b/nvmf-autoconnect/systemd/nvmf-connect@.service index 90f774c5..dd245ee6 100644 --- a/nvmf-autoconnect/systemd/nvmf-connect@.service +++ b/nvmf-autoconnect/systemd/nvmf-connect@.service @@ -4,7 +4,9 @@ [Unit] Description=NVMf auto-connect scan upon nvme discovery controller Events -After=syslog.target +DefaultDependencies=no +After=systemd-udevd.service +Before=local-fs-pre.target PartOf=nvmf-connect.target Requires=nvmf-connect.target -- 2.31.1