]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_io: support the bulkstat metadata directory flag
authorDarrick J. Wong <djwong@kernel.org>
Wed, 3 Jul 2024 21:21:51 +0000 (14:21 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 30 Jul 2024 00:13:17 +0000 (17:13 -0700)
Support the new XFS_BULK_IREQ_METADIR flag for bulkstat commands.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
io/bulkstat.c
man/man8/xfs_io.8

index 06023e1289e4206f00d7e6b9ef1d60e4f3fe5a1b..f312c6d55f47bc01ac86fe9e0d1be42942ec5a88 100644 (file)
@@ -70,6 +70,7 @@ bulkstat_help(void)
 "   -d         Print debugging output.\n"
 "   -q         Be quiet, no output.\n"
 "   -e <ino>   Stop after this inode.\n"
+"   -m         Include metadata directories.\n"
 "   -n <nr>    Ask for this many results at once.\n"
 "   -s <ino>   Inode to start with.\n"
 "   -v <ver>   Use this version of the ioctl (1 or 5).\n"));
@@ -107,11 +108,12 @@ bulkstat_f(
        bool                    has_agno = false;
        bool                    debug = false;
        bool                    quiet = false;
+       bool                    metadir = false;
        unsigned int            i;
        int                     c;
        int                     ret;
 
-       while ((c = getopt(argc, argv, "a:de:n:qs:v:")) != -1) {
+       while ((c = getopt(argc, argv, "a:de:mn:qs:v:")) != -1) {
                switch (c) {
                case 'a':
                        agno = cvt_u32(optarg, 10);
@@ -131,6 +133,9 @@ bulkstat_f(
                                return 1;
                        }
                        break;
+               case 'm':
+                       metadir = true;
+                       break;
                case 'n':
                        batch_size = cvt_u32(optarg, 10);
                        if (errno) {
@@ -185,6 +190,8 @@ bulkstat_f(
 
        if (has_agno)
                xfrog_bulkstat_set_ag(breq, agno);
+       if (metadir)
+               breq->hdr.flags |= XFS_BULK_IREQ_METADIR;
 
        set_xfd_flags(&xfd, ver);
 
@@ -253,6 +260,7 @@ bulkstat_single_f(
        unsigned long           ver = 0;
        unsigned int            i;
        bool                    debug = false;
+       bool                    metadir = false;
        int                     c;
        int                     ret;
 
@@ -261,6 +269,9 @@ bulkstat_single_f(
                case 'd':
                        debug = true;
                        break;
+               case 'm':
+                       metadir = true;
+                       break;
                case 'v':
                        errno = 0;
                        ver = strtoull(optarg, NULL, 10);
@@ -313,6 +324,9 @@ bulkstat_single_f(
                        }
                }
 
+               if (metadir)
+                       flags |= XFS_BULK_IREQ_METADIR;
+
                ret = -xfrog_bulkstat_single(&xfd, ino, flags, &bulkstat);
                if (ret) {
                        xfrog_perror(ret, "xfrog_bulkstat_single");
index a4a7e055f6cd48e86c5e7b1df7950a45a958a7d9..27facb329c2f075c6eb8c6106af4ed565e0ee8eb 100644 (file)
@@ -1237,7 +1237,7 @@ for the current memory mapping.
 
 .SH FILESYSTEM COMMANDS
 .TP
-.BI "bulkstat [ \-a " agno " ] [ \-d ] [ \-e " endino " ] [ \-n " batchsize " ] [ \-q ] [ \-s " startino " ] [ \-v " version" ]
+.BI "bulkstat [ \-a " agno " ] [ \-d ] [ \-e " endino " ] [ \-m ] [ \-n " batchsize " ] [ \-q ] [ \-s " startino " ] [ \-v " version" ]
 Display raw stat information about a bunch of inodes in an XFS filesystem.
 Options are as follows:
 .RS 1.0i
@@ -1254,6 +1254,9 @@ Print debugging information about call results.
 Stop displaying records when this inode number is reached.
 Defaults to stopping when the system call stops returning results.
 .TP
+.BI \-m
+Include metadata directories in the output.
+.TP
 .BI \-n " batchsize"
 Retrieve at most this many records per call.
 Defaults to 4,096.
@@ -1274,10 +1277,11 @@ Currently supported versions are 1 and 5.
 .RE
 .PD
 .TP
-.BI "bulkstat_single [ \-d ] [ \-v " version " ] [ " inum... " | " special... " ]
+.BI "bulkstat_single [ \-d ] [ \-m ] [ \-v " version " ] [ " inum... " | " special... " ]
 Display raw stat information about individual inodes in an XFS filesystem.
 The
-.B \-d
+.BR \-d ,
+.BR \-m ,
 and
 .B \-v
 options are the same as the