Accepting request 199286 from home:elvigia:branches:Base:System
- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fixes the swap unit problem mentioned in previous commit & the opensuse-factory mailing list. - 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fixes the swap unit problem mentioned in previous commit & the opensuse-factory mailing list. OBS-URL: https://build.opensuse.org/request/show/199286 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=436
This commit is contained in:
parent
85c9187bf1
commit
784668e115
90
0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
Normal file
90
0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
Normal file
@ -0,0 +1,90 @@
|
||||
From 9981460a8f2d5587fef5216d556b5fb502281be6 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Mon, 16 Sep 2013 01:08:32 +0200
|
||||
Subject: [PATCH 8/8] swap: create .wants symlink to 'auto' swap devices
|
||||
|
||||
As we load unit files lazily, we need to make sure something pulls in swap
|
||||
units that should be started automatically, otherwise the default dependencies
|
||||
will never be applied.
|
||||
|
||||
This partially reinstates code removed in
|
||||
commit 64347fc2b983f33e7efb0fd2bb44e133fb9f30f4.
|
||||
|
||||
Also don't order swap devices after swap.target when they are 'nofail'.
|
||||
---
|
||||
src/core/swap.c | 8 ++++++--
|
||||
src/fstab-generator/fstab-generator.c | 18 ++++++++++++++++--
|
||||
2 files changed, 22 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/core/swap.c b/src/core/swap.c
|
||||
index 3950860..76c7d45 100644
|
||||
--- a/src/core/swap.c
|
||||
+++ b/src/core/swap.c
|
||||
@@ -220,8 +220,12 @@ static int swap_add_default_dependencies(Swap *s) {
|
||||
}
|
||||
|
||||
if (!noauto) {
|
||||
- r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES),
|
||||
- SPECIAL_SWAP_TARGET, NULL, true);
|
||||
+ if (nofail)
|
||||
+ r = unit_add_dependency_by_name_inverse(UNIT(s),
|
||||
+ UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true);
|
||||
+ else
|
||||
+ r = unit_add_two_dependencies_by_name_inverse(UNIT(s),
|
||||
+ UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
|
||||
index 6ebe8aa..b73dfa4 100644
|
||||
--- a/src/fstab-generator/fstab-generator.c
|
||||
+++ b/src/fstab-generator/fstab-generator.c
|
||||
@@ -66,6 +66,7 @@ static int mount_find_pri(struct mntent *me, int *ret) {
|
||||
static int add_swap(const char *what, struct mntent *me) {
|
||||
_cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL, *device = NULL;
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
+ bool noauto;
|
||||
int r, pri = -1;
|
||||
|
||||
assert(what);
|
||||
@@ -77,6 +78,8 @@ static int add_swap(const char *what, struct mntent *me) {
|
||||
return pri;
|
||||
}
|
||||
|
||||
+ noauto = !!hasmntopt(me, "noauto");
|
||||
+
|
||||
name = unit_name_from_path(what, ".swap");
|
||||
if (!name)
|
||||
return log_oom();
|
||||
@@ -97,8 +100,7 @@ static int add_swap(const char *what, struct mntent *me) {
|
||||
fprintf(f,
|
||||
"# Automatically generated by systemd-fstab-generator\n\n"
|
||||
"[Unit]\n"
|
||||
- "SourcePath=/etc/fstab\n"
|
||||
- "\n"
|
||||
+ "SourcePath=/etc/fstab\n\n"
|
||||
"[Swap]\n"
|
||||
"What=%s\n",
|
||||
what);
|
||||
@@ -114,6 +116,18 @@ static int add_swap(const char *what, struct mntent *me) {
|
||||
return -errno;
|
||||
}
|
||||
|
||||
+ if (!noauto) {
|
||||
+ lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET ".wants/", name, NULL);
|
||||
+ if (!lnk)
|
||||
+ return log_oom();
|
||||
+
|
||||
+ mkdir_parents_label(lnk, 0755);
|
||||
+ if (symlink(unit, lnk) < 0) {
|
||||
+ log_error("Failed to create symlink %s: %m", lnk);
|
||||
+ return -errno;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
really fixes the swap unit problem mentioned in previous
|
||||
commit & the opensuse-factory mailing list.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
|
@ -185,6 +185,8 @@ Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch
|
||||
Patch52: 0005-core-cgroup-first-print-then-free.patch
|
||||
# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly
|
||||
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
||||
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
||||
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
|
||||
# udev patches
|
||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
@ -438,6 +440,7 @@ cp %{SOURCE7} m4/
|
||||
%patch51 -p1
|
||||
%patch52 -p1
|
||||
%patch53 -p1
|
||||
%patch54 -p1
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 16 17:41:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
really fixes the swap unit problem mentioned in previous
|
||||
commit & the opensuse-factory mailing list.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 14 19:01:24 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
|
@ -180,6 +180,8 @@ Patch51: 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch
|
||||
Patch52: 0005-core-cgroup-first-print-then-free.patch
|
||||
# PATCH-FIX-UPSTREAM 0006-swap-fix-reverse-dependencies.patch -- SWAP does not mount properly
|
||||
Patch53: 0006-swap-fix-reverse-dependencies.patch
|
||||
# PATCH-FIX-UPSTREAM 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch really fix swap units
|
||||
Patch54: 0008-swap-create-.wants-symlink-to-auto-swap-devices.patch
|
||||
|
||||
# udev patches
|
||||
# PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch
|
||||
@ -433,6 +435,7 @@ cp %{SOURCE7} m4/
|
||||
%patch51 -p1
|
||||
%patch52 -p1
|
||||
%patch53 -p1
|
||||
%patch54 -p1
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user