summaryrefslogtreecommitdiff
path: root/util-linux/umount.c
diff options
context:
space:
mode:
Diffstat (limited to 'util-linux/umount.c')
-rw-r--r--util-linux/umount.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/util-linux/umount.c b/util-linux/umount.c
index e749c5f..89c59f9 100644
--- a/util-linux/umount.c
+++ b/util-linux/umount.c
@@ -76,6 +76,10 @@ umount_all(int useMtab)
if (strcmp (blockDevice, "/dev/root") == 0)
blockDevice = (getfsfile ("/"))->fs_spec;
#endif
+ /* Don't umount /proc when doing umount -a */
+ if (strcmp (blockDevice, "proc") == 0)
+ continue;
+
status=do_umount (m->mnt_dir, useMtab);
if (status!=0) {
/* Don't bother retrying the umount on busy devices */
@@ -83,9 +87,6 @@ umount_all(int useMtab)
perror(m->mnt_dir);
continue;
}
- printf ("Trying to umount %s failed: %s\n",
- m->mnt_dir, strerror(errno));
- printf ("Instead trying to umount %s\n", blockDevice);
status=do_umount (blockDevice, useMtab);
if (status!=0) {
printf ("Couldn't umount %s on %s (type %s): %s\n",
@@ -107,7 +108,7 @@ umount_main(int argc, char** argv)
}
/* Parse any options */
- while (argc-- > 0 && **(++argv) == '-') {
+ while (argc-- > 0 && **(argv++) == '-') {
while (*++(*argv)) switch (**argv) {
case 'a':
umountAll = TRUE;