bcachefs: Fix systemd dependencies (#422961)

This commit is contained in:
Will Fancher 2025-07-30 14:20:15 -04:00 committed by GitHub
commit 0894e88e99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -111,7 +111,7 @@ let
deviceUnit = mkDeviceUnit device;
mountUnit = mkMountUnit (prefix + fs.mountPoint);
extractProperty =
prop: options: (map (lib.removePrefix "${prop}=") (builtins.filter (lib.hasPrefix prop) options));
prop: options: (map (lib.removePrefix prop) (builtins.filter (lib.hasPrefix prop) options));
normalizeUnits =
unit:
if lib.hasPrefix "/dev/" unit then
@ -120,8 +120,10 @@ let
mkMountUnit unit
else
unit;
requiredUnits = map normalizeUnits (extractProperty "x-systemd.requires" fs.options);
wantedUnits = map normalizeUnits (extractProperty "x-systemd.wants" fs.options);
requiredUnits = map normalizeUnits (extractProperty "x-systemd.requires=" fs.options);
wantedUnits = map normalizeUnits (extractProperty "x-systemd.wants=" fs.options);
requiredMounts = extractProperty "x-systemd.requires-mounts-for=" fs.options;
wantedMounts = extractProperty "x-systemd.wants-mounts-for=" fs.options;
in
{
name = "unlock-bcachefs-${utils.escapeSystemdPath fs.mountPoint}";
@ -136,6 +138,10 @@ let
bindsTo = [ deviceUnit ];
requires = requiredUnits;
wants = wantedUnits;
unitConfig = {
RequiresMountsFor = requiredMounts;
WantsMountsFor = wantedMounts;
};
conflicts = [ "shutdown.target" ];
unitConfig.DefaultDependencies = false;
serviceConfig = {