X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fgpt-auto-generator%2Fgpt-auto-generator.c;h=9803fca420f271acc787d3befd86be21a4c63660;hb=da927ba997d68401563b927f92e6e40e021a8e5c;hp=78643c9a3ce09eb05eb1c072c03c5bd6bb85913e;hpb=8d0cfd6c8858d4f32d1eda122eb5a61e96e6ac54;p=elogind.git diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c index 78643c9a3..9803fca42 100644 --- a/src/gpt-auto-generator/gpt-auto-generator.c +++ b/src/gpt-auto-generator/gpt-auto-generator.c @@ -124,7 +124,7 @@ static int add_cryptsetup(const char *id, const char *what, bool rw, char **devi return log_oom(); p = strjoin(arg_dest, "/", n, NULL); - if (!n) + if (!p) return log_oom(); f = fopen(p, "wxe"); @@ -144,7 +144,6 @@ static int add_cryptsetup(const char *id, const char *what, bool rw, char **devi "Before=umount.target cryptsetup.target\n" "After=%s\n" "IgnoreOnIsolate=true\n" - "After=systemd-readahead-collect.service systemd-readahead-replay.service\n\n" "[Service]\n" "Type=oneshot\n" "RemainAfterExit=yes\n" @@ -206,7 +205,7 @@ static int add_cryptsetup(const char *id, const char *what, bool rw, char **devi "[Unit]\n" "JobTimeoutSec=0\n"); /* the binary handles timeouts anyway */ if (r < 0) { - log_error("Failed to write device drop-in: %s", strerror(-r)); + log_error_errno(r, "Failed to write device drop-in: %m"); return r; } @@ -489,7 +488,7 @@ static int enumerate_partitions(dev_t devnum) { r = udev_enumerate_scan_devices(e); if (r < 0) { - log_error("Failed to enumerate partitions on %s: %s", node, strerror(-r)); + log_error_errno(r, "Failed to enumerate partitions on %s: %m", node); return r; } @@ -681,8 +680,8 @@ static int parse_proc_cmdline_item(const char *key, const char *value) { r = parse_boolean(value); if (r < 0) log_warning("Failed to parse gpt-auto switch %s. Ignoring.", value); - - arg_enabled = r; + else + arg_enabled = r; } else if (streq(key, "root") && value) { @@ -695,8 +694,6 @@ static int parse_proc_cmdline_item(const char *key, const char *value) { arg_root_rw = true; else if (streq(key, "ro") && !value) arg_root_rw = false; - else if (startswith(key, "systemd.gpt-auto.") || startswith(key, "rd.systemd.gpt-auto.")) - log_warning("Unknown kernel switch %s. Ignoring.", key); return 0; } @@ -716,7 +713,7 @@ static int add_root_mount(void) { log_debug("EFI loader partition unknown, exiting."); return 0; } else if (r < 0) { - log_error("Failed to read ESP partition UUID: %s", strerror(-r)); + log_error_errno(r, "Failed to read ESP partition UUID: %m"); return r; } @@ -743,7 +740,7 @@ static int add_mounts(void) { r = get_block_device("/", &devno); if (r < 0) { - log_error("Failed to determine block device of root file system: %s", strerror(-r)); + log_error_errno(r, "Failed to determine block device of root file system: %m"); return r; } else if (r == 0) { log_debug("Root file system not on a (single) block device."); @@ -775,8 +772,9 @@ int main(int argc, char *argv[]) { return EXIT_SUCCESS; } - if (parse_proc_cmdline(parse_proc_cmdline_item) < 0) - return EXIT_FAILURE; + r = parse_proc_cmdline(parse_proc_cmdline_item); + if (r < 0) + log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m"); if (!arg_enabled) { log_debug("Disabled, exiting.");