git: 0add00229d54 - stable/13 - dumpfs(8): add option to only print superblock information
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 23 Feb 2022 18:29:23 UTC
The branch stable/13 has been updated by rew: URL: https://cgit.FreeBSD.org/src/commit/?id=0add00229d540ef8a98b38594ffbb8fc0dbc292c commit 0add00229d540ef8a98b38594ffbb8fc0dbc292c Author: Robert Wing <rew@FreeBSD.org> AuthorDate: 2021-07-02 22:18:17 +0000 Commit: Robert Wing <rew@FreeBSD.org> CommitDate: 2022-02-23 18:27:27 +0000 dumpfs(8): add option to only print superblock information Add an option to dumpfs, `-s`, that only prints the super block information. Reviewed by: chs, imp Differential Revision: https://reviews.freebsd.org/D30881 (cherry picked from commit dc3548453689b30ad712e4391a99d3e7df0cad40) --- sbin/dumpfs/dumpfs.8 | 12 +++++++++--- sbin/dumpfs/dumpfs.c | 17 +++++++++++------ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/sbin/dumpfs/dumpfs.8 b/sbin/dumpfs/dumpfs.8 index 5938282cc257..ec5b12550447 100644 --- a/sbin/dumpfs/dumpfs.8 +++ b/sbin/dumpfs/dumpfs.8 @@ -28,7 +28,7 @@ .\" @(#)dumpfs.8 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd May 16, 2013 +.Dd July 2, 2021 .Dt DUMPFS 8 .Os .Sh NAME @@ -39,6 +39,7 @@ .Op Fl f .Op Fl l .Op Fl m +.Op Fl s .Ar filesys | device .Sh DESCRIPTION The @@ -46,9 +47,10 @@ The utility prints out the UFS super block and cylinder group information for the file system or special device specified, unless the .Fl f , -.Fl l +.Fl l , +.Fl m , or -.Fl m +.Fl s flag is specified. The listing is very long and detailed. This @@ -97,6 +99,10 @@ The .Fl r flag is needed if the filesystem uses .Xr gjournal 8 . +.Pp +If +.Fl s +is specified, only the super block information is printed. .Sh SEE ALSO .Xr fs 5 , .Xr fsck 8 , diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c index 3ac59ccc0875..7c43cf4489a8 100644 --- a/sbin/dumpfs/dumpfs.c +++ b/sbin/dumpfs/dumpfs.c @@ -81,7 +81,7 @@ static const char rcsid[] = static struct uufsd disk; -static int dumpfs(const char *); +static int dumpfs(const char *, int); static int dumpfsid(void); static int dumpcg(void); static int dumpfreespace(const char *, int); @@ -96,11 +96,11 @@ int main(int argc, char *argv[]) { const char *name; - int ch, dofreespace, domarshal, dolabel, eval; + int ch, dofreespace, domarshal, dolabel, dosb, eval; - dofreespace = domarshal = dolabel = eval = 0; + dofreespace = domarshal = dolabel = dosb = eval = 0; - while ((ch = getopt(argc, argv, "lfm")) != -1) { + while ((ch = getopt(argc, argv, "lfms")) != -1) { switch (ch) { case 'f': dofreespace++; @@ -111,6 +111,9 @@ main(int argc, char *argv[]) case 'l': dolabel = 1; break; + case 's': + dosb = 1; + break; case '?': default: usage(); @@ -139,7 +142,7 @@ main(int argc, char *argv[]) else if (dolabel) eval |= dumpfsid(); else - eval |= dumpfs(name); + eval |= dumpfs(name, dosb); ufs_disk_close(&disk); } exit(eval); @@ -154,7 +157,7 @@ dumpfsid(void) } static int -dumpfs(const char *name) +dumpfs(const char *name, int dosb) { time_t fstime, fsmtime; int64_t fssize; @@ -324,6 +327,8 @@ dumpfs(const char *name) printf("blocks in last group %ld\n\n", (long)((fssize % afs.fs_fpg) / afs.fs_frag)); } + if (dosb) + return (0); while ((i = cgread(&disk)) != 0) { if (i == -1 || dumpcg()) goto err;