diff options
author | Natanael Copa | 2009-09-20 04:28:22 +0200 |
---|---|---|
committer | Denys Vlasenko | 2009-09-20 04:28:22 +0200 |
commit | 9aff29997ed22932f78aa8d8c7c2412e9d3f49e5 (patch) | |
tree | 8df24e36d81c3f4f6d1cf6b9892341f96b5ecb92 /util-linux/findfs.c | |
parent | 2bf6634ef46b5360e6381e61b27415e52a1cd7c7 (diff) | |
download | busybox-9aff29997ed22932f78aa8d8c7c2412e9d3f49e5.zip busybox-9aff29997ed22932f78aa8d8c7c2412e9d3f49e5.tar.gz |
swaponoff: add uuid/label support. By Natanael Copa
function old new delta
swap_enable_disable 130 150 +20
resolve_mount_spec 76 96 +20
mount_main 1152 1154 +2
findfs_main 125 80 -45
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 42/-45) Total: -3 bytes
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'util-linux/findfs.c')
-rw-r--r-- | util-linux/findfs.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/util-linux/findfs.c b/util-linux/findfs.c index 5b64399..1e9c687 100644 --- a/util-linux/findfs.c +++ b/util-linux/findfs.c @@ -12,26 +12,27 @@ #include "volume_id.h" int findfs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int findfs_main(int argc, char **argv) +int findfs_main(int argc UNUSED_PARAM, char **argv) { - char *tmp = NULL; + char *dev = *++argv; - if (argc != 2) + if (!dev) bb_show_usage(); - if (!strncmp(argv[1], "LABEL=", 6)) - tmp = get_devname_from_label(argv[1] + 6); - else if (!strncmp(argv[1], "UUID=", 5)) - tmp = get_devname_from_uuid(argv[1] + 5); - else if (!strncmp(argv[1], "/dev/", 5)) { - /* Just pass a device name right through. This might aid in some scripts - being able to call this unconditionally */ - tmp = argv[1]; - } else - bb_show_usage(); + if (strncmp(dev, "/dev/", 5) == 0) { + /* Just pass any /dev/xxx name right through. + * This might aid in some scripts being able + * to call this unconditionally */ + dev = NULL; + } else { + /* Otherwise, handle LABEL=xxx and UUID=xxx, + * fail on anything else */ + if (!resolve_mount_spec(argv)) + bb_show_usage(); + } - if (tmp) { - puts(tmp); + if (*argv != dev) { + puts(*argv); return 0; } return 1; |