chiark / gitweb /
networkd: make sure Network and Link can always be freed
[elogind.git] / src / cryptsetup / cryptsetup-generator.c
index ba6efa6fc392a64879194f2f2889b4e20700a596..9c98f0b617d161417060d93bb50dbd7eb9aaaf55 100644 (file)
@@ -27,7 +27,6 @@
 #include "util.h"
 #include "unit-name.h"
 #include "mkdir.h"
-#include "virt.h"
 #include "strv.h"
 #include "fileio.h"
 
@@ -118,6 +117,7 @@ static int create_disk(
                 "Conflicts=umount.target\n"
                 "DefaultDependencies=no\n"
                 "BindsTo=dev-mapper-%i.device\n"
+                "IgnoreOnIsolate=true\n"
                 "After=systemd-readahead-collect.service systemd-readahead-replay.service\n",
                 f);
 
@@ -129,7 +129,7 @@ static int create_disk(
                 if (streq(password, "/dev/urandom") ||
                     streq(password, "/dev/random") ||
                     streq(password, "/dev/hw_random"))
-                        fputs("After=systemd-random-seed-load.service\n", f);
+                        fputs("After=systemd-random-seed.service\n", f);
                 else if (!streq(password, "-") &&
                          !streq(password, "none"))
                         fprintf(f,
@@ -240,20 +240,21 @@ static int create_disk(
         return 0;
 }
 
-static int parse_proc_cmdline(char ***arg_proc_cmdline_disks, char ***arg_proc_cmdline_options, char **arg_proc_cmdline_keyfile) {
+static int parse_proc_cmdline(
+                char ***arg_proc_cmdline_disks,
+                char ***arg_proc_cmdline_options,
+                char **arg_proc_cmdline_keyfile) {
+
         _cleanup_free_ char *line = NULL;
         char *w = NULL, *state = NULL;
-        int r;
         size_t l;
+        int r;
 
-        if (detect_container(NULL) > 0)
-                return 0;
-
-        r = read_one_line_file("/proc/cmdline", &line);
-        if (r < 0) {
+        r = proc_cmdline(&line);
+        if (r < 0)
                 log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r));
+        if (r <= 0)
                 return 0;
-        }
 
         FOREACH_WORD_QUOTED(w, l, line, state) {
                 _cleanup_free_ char *word = NULL;