umount: umount -a shouldn't stop on first failure
authorDenis Vlasenko <vda.linux@googlemail.com>
Sun, 12 Nov 2006 17:23:45 +0000 (17:23 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sun, 12 Nov 2006 17:23:45 +0000 (17:23 -0000)
util-linux/umount.c

index 9c551f986182d2ef989314c63570e14b27648f4c..6ba72aed1fb99cf494085f973f9de7ffe8eb5ce7 100644 (file)
@@ -54,11 +54,12 @@ int umount_main(int argc, char **argv)
        /* If we're umounting all, then m points to the start of the list and
         * the argument list should be empty (which will match all). */
 
-       if (!(fp = setmntent(bb_path_mtab_file, "r"))) {
+       fp = setmntent(bb_path_mtab_file, "r");
+       if (!fp) {
                if (opt & OPT_ALL)
                        bb_error_msg_and_die("cannot open %s", bb_path_mtab_file);
        } else {
-               while (getmntent_r(fp,&me,path,sizeof(path))) {
+               while (getmntent_r(fp, &me, path, sizeof(path))) {
                        m = xmalloc(sizeof(struct mtab_list));
                        m->next = mtl;
                        m->device = xstrdup(me.mnt_fsname);
@@ -68,7 +69,7 @@ int umount_main(int argc, char **argv)
                endmntent(fp);
        }
 
-       /* If we're not mounting all, we need at least one argument. */
+       /* If we're not umounting all, we need at least one argument. */
        if (!(opt & OPT_ALL)) {
                m = 0;
                if (!argc) bb_show_usage();
@@ -104,7 +105,7 @@ int umount_main(int argc, char **argv)
                if (curstat && doForce) {
                        curstat = umount2(zapit, doForce);
                        if (curstat)
-                               bb_error_msg_and_die("forced umount of %s failed!", zapit);
+                               bb_error_msg("forced umount of %s failed!", zapit);
                }
 
                // If still can't umount, maybe remount read-only?
@@ -130,7 +131,7 @@ int umount_main(int argc, char **argv)
                // Note this means that "umount /dev/blah" will unmount all instances
                // of /dev/blah, not just the most recent.
                while (m && (m = m->next))
-                       if ((opt & OPT_ALL) || !strcmp(path,m->device))
+                       if ((opt & OPT_ALL) || !strcmp(path, m->device))
                                break;
        }