diff options
Diffstat (limited to 'init/devices.cpp')
-rw-r--r-- | init/devices.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/init/devices.cpp b/init/devices.cpp index d4a3cb9d3..ee8738c2a 100644 --- a/init/devices.cpp +++ b/init/devices.cpp @@ -465,7 +465,11 @@ void DeviceHandler::HandleDevice(const std::string& action, const std::string& d MakeDevice(devpath, block, major, minor, links); } - // We don't have full device-mapper information until a change event is fired. + // Handle device-mapper nodes. + // On kernels <= 5.10, the "add" event is fired on DM_DEV_CREATE, but does not contain name + // information until DM_TABLE_LOAD - thus, we wait for a "change" event. + // On kernels >= 5.15, the "add" event is fired on DM_TABLE_LOAD, followed by a "change" + // event. if (action == "add" || (action == "change" && StartsWith(devpath, "/dev/block/dm-"))) { for (const auto& link : links) { if (!mkdir_recursive(Dirname(link), 0755)) { |