swap: generate automatic dependencies also for /proc/swaps devices
This catches up with the logic we do for mounts: we create deps based on /proc/swaps now too, with the right flags set.
This commit is contained in:
+24
-6
@@ -184,21 +184,39 @@ static int swap_arm_timer(Swap *s, usec_t usec) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static SwapParameters* swap_get_parameters(Swap *s) {
|
||||||
|
assert(s);
|
||||||
|
|
||||||
|
if (s->from_proc_swaps)
|
||||||
|
return &s->parameters_proc_swaps;
|
||||||
|
|
||||||
|
if (s->from_fragment)
|
||||||
|
return &s->parameters_fragment;
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static int swap_add_device_dependencies(Swap *s) {
|
static int swap_add_device_dependencies(Swap *s) {
|
||||||
|
UnitDependencyMask mask;
|
||||||
|
SwapParameters *p;
|
||||||
|
|
||||||
assert(s);
|
assert(s);
|
||||||
|
|
||||||
if (!s->what)
|
if (!s->what)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!s->from_fragment)
|
p = swap_get_parameters(s);
|
||||||
|
if (!p)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (is_device_path(s->what))
|
mask = s->from_proc_swaps ? UNIT_DEPENDENCY_PROC_SWAP : UNIT_DEPENDENCY_FILE;
|
||||||
return unit_add_node_dependency(UNIT(s), s->what, UNIT_BINDS_TO, UNIT_DEPENDENCY_FILE);
|
|
||||||
|
|
||||||
/* File based swap devices need to be ordered after systemd-remount-fs.service,
|
if (is_device_path(p->what))
|
||||||
* since they might need a writable file system. */
|
return unit_add_node_dependency(UNIT(s), p->what, UNIT_BINDS_TO, mask);
|
||||||
return unit_add_dependency_by_name(UNIT(s), UNIT_AFTER, SPECIAL_REMOUNT_FS_SERVICE, true, UNIT_DEPENDENCY_FILE);
|
|
||||||
|
/* File based swap devices need to be ordered after systemd-remount-fs.service, since they might need
|
||||||
|
* a writable file system. */
|
||||||
|
return unit_add_dependency_by_name(UNIT(s), UNIT_AFTER, SPECIAL_REMOUNT_FS_SERVICE, true, mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int swap_add_default_dependencies(Swap *s) {
|
static int swap_add_default_dependencies(Swap *s) {
|
||||||
|
|||||||
Reference in New Issue
Block a user