From 15a4f1ee50f61cecd84cc95c38e1185faa81c03c Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Sun, 22 Feb 2004 11:35:13 +0000 Subject: [PATCH] Patch from Chris Larson (kergoth), to allow multiple directores to be unmounted at once. --- docs/busybox.sgml | 2 +- util-linux/umount.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/busybox.sgml b/docs/busybox.sgml index b54d68ee5..bd8b1697c 100644 --- a/docs/busybox.sgml +++ b/docs/busybox.sgml @@ -3441,7 +3441,7 @@ umount - Usage: umount [OPTION]... DEVICE|DIRECTORY + Usage: umount [OPTION]... DEVICE|DIRECTORY [...] diff --git a/util-linux/umount.c b/util-linux/umount.c index 863d52476..5df597028 100644 --- a/util-linux/umount.c +++ b/util-linux/umount.c @@ -238,7 +238,7 @@ static int umount_all(void) extern int umount_main(int argc, char **argv) { - char path[PATH_MAX]; + char path[PATH_MAX], result = 0; if (argc < 2) { bb_show_usage(); @@ -286,10 +286,13 @@ extern int umount_main(int argc, char **argv) else return EXIT_FAILURE; } - if (realpath(*argv, path) == NULL) - bb_perror_msg_and_die("%s", path); - if (do_umount(path)) - return EXIT_SUCCESS; - bb_perror_msg_and_die("%s", *argv); -} + do { + if (realpath(*argv, path) != NULL) + if (do_umount(path)) + continue; + bb_perror_msg("%s", path); + result++; + } while (--argc > 0 && ++argv); + return result; +}