]> git.apps.os.sepia.ceph.com Git - xfsprogs-dev.git/commitdiff
xfs_io: support flag for limited bulkstat of the metadata directory
authorDarrick J. Wong <djwong@kernel.org>
Thu, 21 Nov 2024 00:24:16 +0000 (16:24 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 24 Dec 2024 02:01:26 +0000 (18:01 -0800)
Support the new XFS_BULK_IREQ_METADIR flag for bulkstat commands.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
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 eb2201fca74380b4a140a5200163adc1d9462e6d..fb7a026224fda71a38a4017f611de1bc6e8d5893 100644 (file)
@@ -1243,7 +1243,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
@@ -1260,6 +1260,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.
@@ -1280,10 +1283,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