X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcryptsetup%2Fcryptsetup-generator.c;h=9c98f0b617d161417060d93bb50dbd7eb9aaaf55;hb=baabc5776475f7313cdaa5f3bdb45c1c5d053f91;hp=ba6efa6fc392a64879194f2f2889b4e20700a596;hpb=7ab064a6d60cf805765077b67d56c123f9cf3c58;p=elogind.git diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c index ba6efa6fc..9c98f0b61 100644 --- a/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c @@ -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;