chiark / gitweb /
sd-rtnl: fix bogus warning about dropping 20 bytes from multi-part messages
[elogind.git] / src / efi-boot-generator / efi-boot-generator.c
index cf9ff73b12d55c67ccd6f4fcf15f2cb834d1f3b6..99a819fe37c3e2f0319f89fe2a0845891c19b053 100644 (file)
@@ -58,6 +58,7 @@ int main(int argc, char *argv[]) {
                 log_debug("In initrd, exiting.");
                 return EXIT_SUCCESS;
         }
+
         if (detect_container(NULL) > 0) {
                 log_debug("In a container, exiting.");
                 return EXIT_SUCCESS;
@@ -68,24 +69,25 @@ int main(int argc, char *argv[]) {
                 return EXIT_SUCCESS;
         }
 
-        if (dir_is_empty("/boot") <= 0) {
+        if (path_is_mount_point("/boot", true) <= 0 &&
+            dir_is_empty("/boot") <= 0) {
                 log_debug("/boot already populated, exiting.");
                 return EXIT_SUCCESS;
         }
 
         r = efi_loader_get_device_part_uuid(&id);
         if (r == -ENOENT) {
-                log_debug("EFI loader partition unknown exiting.");
+                log_debug("EFI loader partition unknown, exiting.");
                 return EXIT_SUCCESS;
         } 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 EXIT_FAILURE;
         }
 
         name = strappenda(arg_dest, "/boot.mount");
         f = fopen(name, "wxe");
         if (!f) {
-                log_error("Failed to create mount unit file %s: %m", name);
+                log_error_errno(errno, "Failed to create mount unit file %s: %m", name);
                 return EXIT_FAILURE;
         }
 
@@ -118,7 +120,7 @@ int main(int argc, char *argv[]) {
 
         fflush(f);
         if (ferror(f)) {
-                log_error("Failed to write mount unit file: %m");
+                log_error_errno(errno, "Failed to write mount unit file: %m");
                 return EXIT_FAILURE;
         }
 
@@ -126,7 +128,7 @@ int main(int argc, char *argv[]) {
         fclose(f);
         f = fopen(name, "wxe");
         if (!f) {
-                log_error("Failed to create automount unit file %s: %m", name);
+                log_error_errno(errno, "Failed to create automount unit file %s: %m", name);
                 return EXIT_FAILURE;
         }
 
@@ -138,7 +140,7 @@ int main(int argc, char *argv[]) {
 
         fflush(f);
         if (ferror(f)) {
-                log_error("Failed to write automount unit file: %m");
+                log_error_errno(errno, "Failed to write automount unit file: %m");
                 return EXIT_FAILURE;
         }
 
@@ -146,7 +148,7 @@ int main(int argc, char *argv[]) {
         mkdir_parents(name, 0755);
 
         if (symlink("../boot.automount", name) < 0) {
-                log_error("Failed to create symlink %s: %m", name);
+                log_error_errno(errno, "Failed to create symlink %s: %m", name);
                 return EXIT_FAILURE;
         }