44 lines
1.9 KiB
Diff
44 lines
1.9 KiB
Diff
From cf1ac0cfe44997747b0f857a1d0b67cea1298272 Mon Sep 17 00:00:00 2001
|
|
From: Martin Wilck <mwilck@suse.com>
|
|
Date: Wed, 25 May 2022 12:01:00 +0200
|
|
Subject: [PATCH] core/device: device_coldplug(): don't set DEVICE_DEAD
|
|
|
|
dm-crypt device units generated by systemd-cryptsetup-generator
|
|
habe BindsTo= dependencies on their backend devices. The dm-crypt
|
|
devices have the db_persist flag set, and thus survive the udev db
|
|
cleanup while switching root. But backend devices usually don't survive.
|
|
These devices are neither mounted nor used for swap, thus they will
|
|
seen as DEVICE_NOT_FOUND after switching root.
|
|
|
|
The BindsTo dependency will cause systemd to schedule a stop
|
|
job for the dm-crypt device, breaking boot:
|
|
|
|
[ 68.929457] krypton systemd[1]: systemd-cryptsetup@cr_root.service: Unit is stopped because bound to inactive unit dev-disk-by\x2duuid-3bf91f73\x2d1ee8\x2d4cfc\x2d9048\x2d93ba349b786d.device.
|
|
[ 68.945660] krypton systemd[1]: systemd-cryptsetup@cr_root.service: Trying to enqueue job systemd-cryptsetup@cr_root.service/stop/replace
|
|
[ 69.473459] krypton systemd[1]: systemd-cryptsetup@cr_root.service: Installed new job systemd-cryptsetup@cr_root.service/stop as 343
|
|
|
|
Avoid this by not setting the state of the backend devices to
|
|
DEVICE_DEAD.
|
|
|
|
Fixes the LUKS setup issue reported in #23429.
|
|
---
|
|
src/core/device.c | 2 --
|
|
1 file changed, 2 deletions(-)
|
|
|
|
diff --git a/src/core/device.c b/src/core/device.c
|
|
index 4c261ec554..8728630523 100644
|
|
--- a/src/core/device.c
|
|
+++ b/src/core/device.c
|
|
@@ -205,8 +205,6 @@ static int device_coldplug(Unit *u) {
|
|
found &= ~DEVICE_FOUND_UDEV; /* ignore DEVICE_FOUND_UDEV bit */
|
|
if (state == DEVICE_PLUGGED)
|
|
state = DEVICE_TENTATIVE; /* downgrade state */
|
|
- if (found == DEVICE_NOT_FOUND)
|
|
- state = DEVICE_DEAD; /* If nobody sees the device, downgrade more */
|
|
}
|
|
|
|
if (d->found == found && d->state == state)
|
|
--
|
|
2.33.0
|
|
|