summaryrefslogtreecommitdiff
path: root/misc/tune2fs.c
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2002-08-17 23:01:22 -0400
committerTheodore Ts'o <tytso@mit.edu>2002-08-17 23:01:22 -0400
commit118d7dacc535fde4e2ed8d996de3919aa0eb2e98 (patch)
treee08b2c9b644996f489d9821fe69a3dbb96c714fb /misc/tune2fs.c
parente5b164373c2b7feb867f701f6493e3d87765272c (diff)
downloade2fsprogs-118d7dacc535fde4e2ed8d996de3919aa0eb2e98.tar.gz
Add support for searching /proc/evms/volumes when interpreting
LABEL=xxx or UUID=xxx. Add new utility program /sbin/findfs, which interprets LABEL=xxx or UUID=xxx, and returns the device name. (Part of tune2fs).
Diffstat (limited to 'misc/tune2fs.c')
-rw-r--r--misc/tune2fs.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 7930c783..a644bb49 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -627,8 +627,26 @@ static void parse_tune2fs_options(int argc, char **argv)
if (!open_flag && !l_flag)
usage();
device_name = argv[optind];
-}
+}
+
+do_findfs(int argc, char **argv)
+{
+ char *dev;
+ if ((argc != 2) ||
+ (strncmp(argv[1], "LABEL=", 6) && strncmp(argv[1], "UUID=", 5))) {
+ fprintf(stderr, "Usage: findfs LABEL=<label>|UUID=<uuid>\n");
+ exit(2);
+ }
+ dev = interpret_spec(argv[1]);
+ if (!dev) {
+ fprintf(stderr, "Filesystem matching %s not found\n",
+ argv[1]);
+ exit(1);
+ }
+ puts(dev);
+ exit(0);
+}
int main (int argc, char ** argv)
@@ -647,6 +665,8 @@ int main (int argc, char ** argv)
program_name = *argv;
initialize_ext2_error_table();
+ if (strcmp(get_progname(argv[0]), "findfs") == 0)
+ do_findfs(argc, argv);
if (strcmp(get_progname(argv[0]), "e2label") == 0)
parse_e2label_options(argc, argv);
else