diff options
Diffstat (limited to 'sbin/dumpfs/dumpfs.c')
-rw-r--r-- | sbin/dumpfs/dumpfs.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c index eb92ba7..c54fa2b 100644 --- a/sbin/dumpfs/dumpfs.c +++ b/sbin/dumpfs/dumpfs.c @@ -68,6 +68,7 @@ static const char rcsid[] = #include <fcntl.h> #include <fstab.h> #include <libufs.h> +#include <paths.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> @@ -79,6 +80,7 @@ static const char rcsid[] = struct uufsd disk; int dumpfs(const char *); +int dumpfsid(void); int dumpcg(void); int dumpfreespace(const char *, int); void dumpfreespacecg(int); @@ -92,11 +94,11 @@ int main(int argc, char *argv[]) { const char *name; - int ch, dofreespace, domarshal, eval; + int ch, dofreespace, domarshal, dolabel, eval; - dofreespace = domarshal = eval = 0; + dofreespace = domarshal = dolabel = eval = 0; - while ((ch = getopt(argc, argv, "fm")) != -1) { + while ((ch = getopt(argc, argv, "lfm")) != -1) { switch (ch) { case 'f': dofreespace++; @@ -104,6 +106,9 @@ main(int argc, char *argv[]) case 'm': domarshal = 1; break; + case 'l': + dolabel = 1; + break; case '?': default: usage(); @@ -129,6 +134,8 @@ main(int argc, char *argv[]) eval |= dumpfreespace(name, dofreespace); else if (domarshal) eval |= marshal(name); + else if (dolabel) + eval |= dumpfsid(); else eval |= dumpfs(name); ufs_disk_close(&disk); @@ -137,6 +144,14 @@ main(int argc, char *argv[]) } int +dumpfsid(void) +{ + + printf("%sufsid/%08x%08x\n", _PATH_DEV, afs.fs_id[0], afs.fs_id[1]); + return 0; +} + +int dumpfs(const char *name) { time_t fstime; |