chiark / gitweb /
journal: fix field retrieval by name
[elogind.git] / src / shutdown.c
index 6714927f86391d2e95013bc09990364b79e85cc0..11213f9d595a288c57e3d803d3ed8d21ff16a115 100644 (file)
@@ -41,6 +41,7 @@
 #include "log.h"
 #include "umount.h"
 #include "util.h"
+#include "virt.h"
 
 #define TIMEOUT_USEC (5 * USEC_PER_SEC)
 #define FINALIZE_ATTEMPTS 50
@@ -295,6 +296,8 @@ int main(int argc, char *argv[]) {
         log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */
         log_open();
 
+        umask(0022);
+
         if (getpid() != 1) {
                 log_error("Not executed by init (pid 1).");
                 r = -EPERM;
@@ -384,9 +387,12 @@ int main(int argc, char *argv[]) {
                                 log_error("Failed to detach DM devices: %s", strerror(-r));
                 }
 
-                if (!need_umount && !need_swapoff && !need_loop_detach && !need_dm_detach)
+                if (!need_umount && !need_swapoff && !need_loop_detach && !need_dm_detach) {
+                        if (retries > 0)
+                                log_info("All filesystems, swaps, loop devices, DM devices detached.");
                         /* Yay, done */
                         break;
+                }
 
                 /* If in this iteration we didn't manage to
                  * unmount/deactivate anything, we either kill more