umount: fix "umount -t FSTYPE MNTPOINT" acting as if -a is specified
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 20 Feb 2018 16:58:19 +0000 (17:58 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 20 Feb 2018 16:58:19 +0000 (17:58 +0100)
While at it, add -t to --help, and fix comments which say that -t is ignored

function                                             old     new   delta
packed_usage                                       32427   32444     +17
umount_main                                          558     552      -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 17/-6)              Total: 11 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
util-linux/umount.c

index b45cd8a6b5de59f9ffb104cc4edf6532c3556a0c..e2329f8b34c42a383e3ba58b97f17c099c216d7d 100644 (file)
@@ -57,6 +57,7 @@
 //usage:       IF_FEATURE_MOUNT_LOOP(
 //usage:     "\n       -d      Free loop device if it has been used"
 //usage:       )
+//usage:     "\n       -t FSTYPE[,...] Unmount only these filesystem type(s)"
 //usage:
 //usage:#define umount_example_usage
 //usage:       "$ umount /dev/hdc1\n"
@@ -81,8 +82,8 @@ static struct mntent *getmntent_r(FILE* stream, struct mntent* result,
 }
 #endif
 
-/* ignored: -c -v -t -i */
-#define OPTION_STRING           "fldnra" "cvt:i"
+/* ignored: -c -v -i */
+#define OPTION_STRING           "fldnrat:" "cvi"
 #define OPT_FORCE               (1 << 0) // Same as MNT_FORCE
 #define OPT_LAZY                (1 << 1) // Same as MNT_DETACH
 #define OPT_FREELOOP            (1 << 2)
@@ -143,7 +144,8 @@ int umount_main(int argc UNUSED_PARAM, char **argv)
        }
 
        // If we're not umounting all, we need at least one argument.
-       if (!(opt & OPT_ALL) && !fstype) {
+       // Note: "-t FSTYPE" does not imply -a.
+       if (!(opt & OPT_ALL)) {
                if (!argv[0])
                        bb_show_usage();
                m = NULL;