swap: always add in extras when we load a swap unit
Much like for the mount units we need fields such as the slice initialized by the time we activate the swap, hence when the kernel let's us know about a new swap that appeared we need to initialize the slice in any Swap object we allocated for that right-away, even if we can't read the real unit file for the swap device.
This commit is contained in:
parent
a0a424083f
commit
06721f39f6
|
@ -337,7 +337,7 @@ static int swap_add_extras(Swap *s) {
|
|||
|
||||
static int swap_load(Unit *u) {
|
||||
Swap *s = SWAP(u);
|
||||
int r;
|
||||
int r, q;
|
||||
|
||||
assert(s);
|
||||
assert(u->load_state == UNIT_STUB);
|
||||
|
@ -347,16 +347,18 @@ static int swap_load(Unit *u) {
|
|||
r = unit_load_fragment_and_dropin_optional(u);
|
||||
else
|
||||
r = unit_load_fragment_and_dropin(u);
|
||||
|
||||
/* Add in some extras, and do so either when we successfully loaded something or when /proc/swaps is already
|
||||
* active. */
|
||||
if (u->load_state == UNIT_LOADED || s->from_proc_swaps)
|
||||
q = swap_add_extras(s);
|
||||
else
|
||||
q = 0;
|
||||
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (u->load_state == UNIT_LOADED) {
|
||||
|
||||
r = swap_add_extras(s);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
}
|
||||
if (q < 0)
|
||||
return q;
|
||||
|
||||
return swap_verify(s);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue