The branch main has been updated by rew:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=dc3548453689b30ad712e4391a99d3e7df0cad40

commit dc3548453689b30ad712e4391a99d3e7df0cad40
Author:     Robert Wing <[email protected]>
AuthorDate: 2021-07-02 22:18:17 +0000
Commit:     Robert Wing <[email protected]>
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;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "[email protected]"

Reply via email to