bcachefs: Fix systemd dependencies (#422961)
This commit is contained in:
commit
0894e88e99
@ -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 = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user