X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fshutdown.c;h=2cd0bce2f336736457ca5ea670f2d43f188b73f3;hb=8c8549db376ce9325e5a7547959ab7d9218505b7;hp=53c701a8f0a016e338cd4af1889b3bb67e435782;hpb=0a1beeb64207eaa88ab9236787b1cbc2f704ae14;p=elogind.git diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 53c701a8f..2cd0bce2f 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -138,15 +138,11 @@ static int parse_argv(int argc, char *argv[]) { } static int switch_root_initramfs(void) { - if (mount("/run/initramfs", "/run/initramfs", NULL, MS_BIND, NULL) < 0) { - log_error("Failed to mount bind /run/initramfs on /run/initramfs: %m"); - return -errno; - } + if (mount("/run/initramfs", "/run/initramfs", NULL, MS_BIND, NULL) < 0) + return log_error_errno(errno, "Failed to mount bind /run/initramfs on /run/initramfs: %m"); - if (mount(NULL, "/run/initramfs", NULL, MS_PRIVATE, NULL) < 0) { - log_error("Failed to make /run/initramfs private mount: %m"); - return -errno; - } + if (mount(NULL, "/run/initramfs", NULL, MS_PRIVATE, NULL) < 0) + return log_error_errno(errno, "Failed to make /run/initramfs private mount: %m"); /* switch_root with MS_BIND, because there might still be processes lurking around, which have open file desriptors. * /run/initramfs/shutdown will take care of these. @@ -240,7 +236,7 @@ int main(int argc, char *argv[]) { } else if (r > 0) log_info("Not all file systems unmounted, %d left.", r); else - log_error_errno(-r, "Failed to unmount file systems: %m"); + log_error_errno(r, "Failed to unmount file systems: %m"); } if (need_swapoff) { @@ -252,7 +248,7 @@ int main(int argc, char *argv[]) { } else if (r > 0) log_info("Not all swaps deactivated, %d left.", r); else - log_error_errno(-r, "Failed to deactivate swaps: %m"); + log_error_errno(r, "Failed to deactivate swaps: %m"); } if (need_loop_detach) { @@ -264,7 +260,7 @@ int main(int argc, char *argv[]) { } else if (r > 0) log_info("Not all loop devices detached, %d left.", r); else - log_error_errno(-r, "Failed to detach loop devices: %m"); + log_error_errno(r, "Failed to detach loop devices: %m"); } if (need_dm_detach) { @@ -276,7 +272,7 @@ int main(int argc, char *argv[]) { } else if (r > 0) log_info("Not all DM devices detached, %d left.", r); else - log_error_errno(-r, "Failed to detach DM devices: %m"); + log_error_errno(r, "Failed to detach DM devices: %m"); } if (!need_umount && !need_swapoff && !need_loop_detach && !need_dm_detach) { @@ -327,9 +323,9 @@ int main(int argc, char *argv[]) { "Returning to initrd..."); execv("/shutdown", argv); - log_error("Failed to execute shutdown binary: %m"); + log_error_errno(errno, "Failed to execute shutdown binary: %m"); } else - log_error_errno(-r, "Failed to switch root to \"/run/initramfs\": %m"); + log_error_errno(r, "Failed to switch root to \"/run/initramfs\": %m"); } @@ -359,7 +355,7 @@ int main(int argc, char *argv[]) { pid = fork(); if (pid < 0) - log_error("Failed to fork: %m"); + log_error_errno(errno, "Failed to fork: %m"); else if (pid == 0) { const char * const args[] = { @@ -412,11 +408,11 @@ int main(int argc, char *argv[]) { exit(0); } - log_error("Failed to invoke reboot(): %m"); + log_error_errno(errno, "Failed to invoke reboot(): %m"); r = -errno; error: - log_emergency_errno(-r, "Critical error while doing system shutdown: %m"); + log_emergency_errno(r, "Critical error while doing system shutdown: %m"); freeze(); }