git: dc3548453689 - main - dumpfs(8): add option to only print superblock information
Robert Wing
rew at FreeBSD.org
Fri Jul 2 22:24:29 UTC 2021
The branch main has been updated by rew:
URL: https://cgit.FreeBSD.org/src/commit/?id=dc3548453689b30ad712e4391a99d3e7df0cad40
commit dc3548453689b30ad712e4391a99d3e7df0cad40
Author: Robert Wing <rew at FreeBSD.org>
AuthorDate: 2021-07-02 22:18:17 +0000
Commit: Robert Wing <rew at FreeBSD.org>
CommitDate: 2021-07-02 22:18:17 +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
---
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;
More information about the dev-commits-src-all
mailing list