mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
swap: fix swap behaviour with symlinks
Starting a swap unit pointing to (What) a symlink (e.g. /dev/mapper/swap or /dev/disk/by-uuid/...) would have said unit marked active, following the one using the "actual" device (/dev/{dm-1,sda3}), but that new unit would be seen as inactive. Since all requests to stop swap units would follow/redirect to it, and it is seen inactive, nothing would be done (swapoff never called). This is because this unit would be treated twice in swap_process_new_swap, the second call to swap_add_one causing it to eventually be marked inactive.
This commit is contained in:
parent
646134dc0d
commit
b61e88162a
@ -427,7 +427,8 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool
|
||||
return log_oom();
|
||||
|
||||
dn = udev_device_get_devnode(d);
|
||||
if (dn)
|
||||
/* Skip dn==device, since that case will be handled below */
|
||||
if (dn && !streq(dn, device))
|
||||
r = swap_add_one(m, dn, device, prio, false, false, set_flags);
|
||||
|
||||
/* Add additional units for all symlinks */
|
||||
|
Loading…
x
Reference in New Issue
Block a user