summaryrefslogtreecommitdiffstats
path: root/abs/core/systemd/0003-gpt-auto-generator-Generate-explicit-dependencies-on.patch
blob: c1b3aa04979803214506f5b28d8931fdf181c869 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From 4c8bda2442bfc6d84a5deb241dc29efcb81bf3af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org>
Date: Mon, 30 Sep 2013 01:34:45 +0200
Subject: [PATCH 3/7] gpt-auto-generator: Generate explicit dependencies on
 systemd-fsck@.service instead of using FsckPassNo

[tomegun: check for OOM]
---
 src/gpt-auto-generator/gpt-auto-generator.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c
index fae4b71..25440e7 100644
--- a/src/gpt-auto-generator/gpt-auto-generator.c
+++ b/src/gpt-auto-generator/gpt-auto-generator.c
@@ -182,7 +182,7 @@ static int add_swap(const char *path, const char *fstype) {
 }
 
 static int add_home(const char *path, const char *fstype) {
-        _cleanup_free_ char *unit = NULL, *lnk = NULL;
+        _cleanup_free_ char *unit = NULL, *lnk = NULL, *fsck = NULL;
         _cleanup_fclose_ FILE *f = NULL;
 
         if (dir_is_empty("/home") <= 0)
@@ -200,19 +200,23 @@ static int add_home(const char *path, const char *fstype) {
                 return -errno;
         }
 
+        fsck = unit_name_from_path_instance("systemd-fsck", path, ".service");
+        if (!fsck)
+                return log_oom();
+
         fprintf(f,
                 "# Automatically generated by systemd-gpt-auto-generator\n\n"
                 "[Unit]\n"
                 "DefaultDependencies=no\n"
-                "After=" SPECIAL_LOCAL_FS_PRE_TARGET "\n"
+                "Requires=%s\n"
+                "After=" SPECIAL_LOCAL_FS_PRE_TARGET " %s\n"
                 "Conflicts=" SPECIAL_UMOUNT_TARGET "\n"
                 "Before=" SPECIAL_UMOUNT_TARGET " " SPECIAL_LOCAL_FS_TARGET "\n\n"
                 "[Mount]\n"
                 "What=%s\n"
                 "Where=/home\n"
-                "Type=%s\n"
-                "FsckPassNo=2\n",
-                path, fstype);
+                "Type=%s\n",
+                fsck, fsck, path, fstype);
 
         fflush(f);
         if (ferror(f)) {
-- 
1.8.5.1