forked from pool/systemd
22e9bed03a
- Add systemctl-options.patch: handle SYSTEMCTL_OPTIONS internaly (bnc#798620). - Update crypt-loop-file.patch to correctly detect crypto loop files (bnc#799514). - Add journalctl-remove-leftover-message.patch: remove debug message in systemctl. - Add job-avoid-recursion-when-cancelling.patch: prevent potential recursion when cancelling a service. - Add sysctl-parse-all-keys.patch: ensure sysctl file is fully parsed. - Add journal-fix-cutoff-max-date.patch: fix computation of cutoff max date for journal. - Add reword-rescue-mode-hints.patch: reword rescue prompt. - Add improve-overflow-checks.patch: improve time overflow checks. - Add fix-swap-behaviour-with-symlinks.patch: fix swap behaviour with symlinks. - Add hostnamectl-fix-set-hostname-with-no-argument.patch: ensure hostnamectl requires an argument when called with set-hostname option. - Add agetty-overrides-term.patch: pass correctly terminal type to agetty. - Add check-for-empty-strings-in-strto-conversions.patch: better check for empty strings in strto* conversions. - Add strv-cleanup-error-path-loops.patch: cleanup strv on error path. - Add cryptsetup-handle-plain.patch: correctly handle "plain" option in cryptsetup. - Add fstab-generator-improve-error-message.patch: improve error message in fstab-generator. - Add delta-accept-t-option.patch: accept -t option in (forwarded request 149703 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/149704 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=122
34 lines
1.4 KiB
Diff
34 lines
1.4 KiB
Diff
From b61e88162a6ce0c30da6984b0120959701283daa Mon Sep 17 00:00:00 2001
|
|
From: Olivier Brunel <i.am.jack.mail@gmail.com>
|
|
Date: Sat, 13 Oct 2012 14:24:15 +0200
|
|
Subject: [PATCH] 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.
|
|
---
|
|
src/core/swap.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
Index: systemd-195/src/core/swap.c
|
|
===================================================================
|
|
--- systemd-195.orig/src/core/swap.c
|
|
+++ systemd-195/src/core/swap.c
|
|
@@ -415,7 +415,8 @@ static int swap_process_new_swap(Manager
|
|
return -ENOMEM;
|
|
|
|
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 */
|