[systemd-commits] 4 commits - src/core

Michal Schmidt michich at kemper.freedesktop.org
Fri Dec 7 10:34:08 PST 2012


 src/core/shutdown.c |   28 ++++++++++++++++------------
 src/core/umount.c   |   19 +++++++++++--------
 2 files changed, 27 insertions(+), 20 deletions(-)

New commits:
commit 735e0712710a1dc26da0febafb91b242b2687f3f
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Fri Dec 7 18:02:43 2012 +0100

    shutdown, umount: use verbs consistently
    
    Mounts are "unmounted".
    Swaps are "deactivated", not "turned off" nor "disabled".
    Loop and DM devices are "detached", not "deleted".
    
    Especially the deleting sounded a bit scary.

diff --git a/src/core/shutdown.c b/src/core/shutdown.c
index 6783008..0b0e0c3 100644
--- a/src/core/shutdown.c
+++ b/src/core/shutdown.c
@@ -207,15 +207,15 @@ int main(int argc, char *argv[]) {
                 }
 
                 if (need_swapoff) {
-                        log_info("Disabling swaps.");
+                        log_info("Deactivating swaps.");
                         r = swapoff_all(&changed);
                         if (r == 0) {
                                 need_swapoff = false;
-                                log_info("All swaps disabled.");
+                                log_info("All swaps deactivated.");
                         } else if (r > 0)
-                                log_info("Not all swaps are turned off, %d left.", r);
+                                log_info("Not all swaps deactivated, %d left.", r);
                         else
-                                log_error("Failed to turn off swaps: %s", strerror(-r));
+                                log_error("Failed to deactivate swaps: %s", strerror(-r));
                 }
 
                 if (need_loop_detach) {
diff --git a/src/core/umount.c b/src/core/umount.c
index fd90d9f..96232d3 100644
--- a/src/core/umount.c
+++ b/src/core/umount.c
@@ -465,7 +465,7 @@ static int swap_points_list_off(MountPoint **head, bool *changed) {
         assert(head);
 
         LIST_FOREACH_SAFE(mount_point, m, n, *head) {
-                log_info("Disabling swap %s.", m->path);
+                log_info("Deactivating swap %s.", m->path);
                 if (swapoff(m->path) == 0) {
                         if (changed)
                                 *changed = true;
@@ -501,7 +501,7 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) {
                         continue;
                 }
 
-                log_info("Deleting loopback %s.", m->path);
+                log_info("Detaching loopback %s.", m->path);
                 r = delete_loopback(m->path);
                 if (r >= 0) {
                         if (r > 0 && changed)
@@ -509,7 +509,7 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) {
 
                         mount_point_free(head, m);
                 } else {
-                        log_warning("Could not delete loopback %s: %m", m->path);
+                        log_warning("Could not detach loopback %s: %m", m->path);
                         n_failed++;
                 }
         }
@@ -536,7 +536,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) {
                         continue;
                 }
 
-                log_info("Deleting DM %u:%u.", major(m->devnum), minor(m->devnum));
+                log_info("Detaching DM %u:%u.", major(m->devnum), minor(m->devnum));
                 r = delete_dm(m->devnum);
                 if (r >= 0) {
                         if (changed)
@@ -544,7 +544,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) {
 
                         mount_point_free(head, m);
                 } else {
-                        log_warning("Could not delete DM %s: %m", m->path);
+                        log_warning("Could not detach DM %s: %m", m->path);
                         n_failed++;
                 }
         }

commit bce93b7ac7642426039863493694d8c12812e2a7
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Fri Dec 7 17:44:50 2012 +0100

    shutdown, umount: logging improvements
    
    In bugreports about hangs during the late shutdown we are often missing
    important information - what were we trying to unmount/detach when it hung.
    
    Instead of printing what we successfully unmounted, print what we are
    going to unmount/detach. And add messages to mark the completion of
    categories (mount/swap/loop/DM).

diff --git a/src/core/shutdown.c b/src/core/shutdown.c
index 192746a..6783008 100644
--- a/src/core/shutdown.c
+++ b/src/core/shutdown.c
@@ -197,9 +197,10 @@ int main(int argc, char *argv[]) {
                 if (need_umount) {
                         log_info("Unmounting file systems.");
                         r = umount_all(&changed);
-                        if (r == 0)
+                        if (r == 0) {
                                 need_umount = false;
-                        else if (r > 0)
+                                log_info("All filesystems unmounted.");
+                        } else if (r > 0)
                                 log_info("Not all file systems unmounted, %d left.", r);
                         else
                                 log_error("Failed to unmount file systems: %s", strerror(-r));
@@ -208,9 +209,10 @@ int main(int argc, char *argv[]) {
                 if (need_swapoff) {
                         log_info("Disabling swaps.");
                         r = swapoff_all(&changed);
-                        if (r == 0)
+                        if (r == 0) {
                                 need_swapoff = false;
-                        else if (r > 0)
+                                log_info("All swaps disabled.");
+                        } else if (r > 0)
                                 log_info("Not all swaps are turned off, %d left.", r);
                         else
                                 log_error("Failed to turn off swaps: %s", strerror(-r));
@@ -219,9 +221,10 @@ int main(int argc, char *argv[]) {
                 if (need_loop_detach) {
                         log_info("Detaching loop devices.");
                         r = loopback_detach_all(&changed);
-                        if (r == 0)
+                        if (r == 0) {
                                 need_loop_detach = false;
-                        else if (r > 0)
+                                log_info("All loop devices detached.");
+                        } else if (r > 0)
                                 log_info("Not all loop devices detached, %d left.", r);
                         else
                                 log_error("Failed to detach loop devices: %s", strerror(-r));
@@ -230,9 +233,10 @@ int main(int argc, char *argv[]) {
                 if (need_dm_detach) {
                         log_info("Detaching DM devices.");
                         r = dm_detach_all(&changed);
-                        if (r == 0)
+                        if (r == 0) {
                                 need_dm_detach = false;
-                        else if (r > 0)
+                                log_info("All DM devices detached.");
+                        } else if (r > 0)
                                 log_info("Not all DM devices detached, %d left.", r);
                         else
                                 log_error("Failed to detach DM devices: %s", strerror(-r));
diff --git a/src/core/umount.c b/src/core/umount.c
index 8776807..fd90d9f 100644
--- a/src/core/umount.c
+++ b/src/core/umount.c
@@ -443,8 +443,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e
                         continue;
 
                 /* Trying to umount. Forcing to umount if busy (only for NFS mounts) */
+                log_info("Unmounting %s.", m->path);
                 if (umount2(m->path, MNT_FORCE) == 0) {
-                        log_info("Unmounted %s.", m->path);
                         if (changed)
                                 *changed = true;
 
@@ -465,6 +465,7 @@ static int swap_points_list_off(MountPoint **head, bool *changed) {
         assert(head);
 
         LIST_FOREACH_SAFE(mount_point, m, n, *head) {
+                log_info("Disabling swap %s.", m->path);
                 if (swapoff(m->path) == 0) {
                         if (changed)
                                 *changed = true;
@@ -500,8 +501,9 @@ static int loopback_points_list_detach(MountPoint **head, bool *changed) {
                         continue;
                 }
 
-                if ((r = delete_loopback(m->path)) >= 0) {
-
+                log_info("Deleting loopback %s.", m->path);
+                r = delete_loopback(m->path);
+                if (r >= 0) {
                         if (r > 0 && changed)
                                 *changed = true;
 
@@ -534,14 +536,15 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) {
                         continue;
                 }
 
-                if ((r = delete_dm(m->devnum)) >= 0) {
-
+                log_info("Deleting DM %u:%u.", major(m->devnum), minor(m->devnum));
+                r = delete_dm(m->devnum);
+                if (r >= 0) {
                         if (changed)
                                 *changed = true;
 
                         mount_point_free(head, m);
                 } else {
-                        log_warning("Could not delete dm %s: %m", m->path);
+                        log_warning("Could not delete DM %s: %m", m->path);
                         n_failed++;
                 }
         }

commit c678406681d32d56730b9e9c002d5500d7aa7f8b
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Fri Dec 7 17:34:21 2012 +0100

    umount: fix check for DM changed
    
    delete_dm() returns 0 on success. The check for "r > 0" was likely
    a copy&paste error from the loopback code where "r > 0" makes sense.

diff --git a/src/core/umount.c b/src/core/umount.c
index f6c520e..8776807 100644
--- a/src/core/umount.c
+++ b/src/core/umount.c
@@ -536,7 +536,7 @@ static int dm_points_list_detach(MountPoint **head, bool *changed) {
 
                 if ((r = delete_dm(m->devnum)) >= 0) {
 
-                        if (r > 0 && changed)
+                        if (changed)
                                 *changed = true;
 
                         mount_point_free(head, m);

commit 2569a5ce16638d99f1ebaaa7774d183496d8b8e8
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Fri Dec 7 17:28:30 2012 +0100

    shutdown: downgrade a warning
    
    All messages of the kind "not all done, %d left" are log_info, except
    the one for DM devices. Make it info too.

diff --git a/src/core/shutdown.c b/src/core/shutdown.c
index 4bb4b4d..192746a 100644
--- a/src/core/shutdown.c
+++ b/src/core/shutdown.c
@@ -233,7 +233,7 @@ int main(int argc, char *argv[]) {
                         if (r == 0)
                                 need_dm_detach = false;
                         else if (r > 0)
-                                log_warning("Not all DM devices detached, %d left.", r);
+                                log_info("Not all DM devices detached, %d left.", r);
                         else
                                 log_error("Failed to detach DM devices: %s", strerror(-r));
                 }



More information about the systemd-commits mailing list