diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-04-29 20:29:11 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-05-13 03:04:31 +0900 |
commit | 75d7b5989f99125e52d5c0e5656fa1cd0fae2405 (patch) | |
tree | f57b415f5e4fa976b3b361f11358b92125c7ba2e /units/timers.target | |
parent | f33bc87989a87475ed41bc9cd715c4cbb18ee389 (diff) | |
download | systemd-75d7b5989f99125e52d5c0e5656fa1cd0fae2405.tar.gz |
core/device: ignore DEVICE_FOUND_UDEV bit on switching root
The issue #12953 is caused by the following:
On switching root,
- deserialized_found == DEVICE_FOUND_UDEV | DEVICE_FOUND_MOUNT,
- deserialized_state == DEVICE_PLUGGED,
- enumerated_found == DEVICE_FOUND_MOUNT,
On switching root, most devices are not found by the enumeration process.
Hence, the device state is set to plugged by device_coldplug(), and then
changed to the dead state in device_catchup(). So the corresponding
mount point is unmounted. Later when the device is processed by udevd, it
will be changed to plugged state again.
The issue #23208 is caused by the fact that generated udev database in
initramfs and the main system are often different.
So, the two issues have the same root; we should not honor
DEVICE_FOUND_UDEV bit in the deserialized_found on switching root.
This partially reverts c6e892bc0eebe1d42c282bd2d8bae149fbeba85f.
Fixes #12953 and #23208.
Replaces #23215.
Co-authored-by: Martin Wilck <mwilck@suse.com>
Diffstat (limited to 'units/timers.target')
0 files changed, 0 insertions, 0 deletions