From: Darrick J. Wong <djwong@xxxxxxxxxx> Support the new XFS_BULK_IREQ_METADIR flag for bulkstat commands. Signed-off-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --- io/bulkstat.c | 16 +++++++++++++++- man/man8/xfs_io.8 | 10 +++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/io/bulkstat.c b/io/bulkstat.c index 06023e1289e420..f312c6d55f47bc 100644 --- a/io/bulkstat.c +++ b/io/bulkstat.c @@ -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"); diff --git a/man/man8/xfs_io.8 b/man/man8/xfs_io.8 index eb2201fca74380..fb7a026224fda7 100644 --- a/man/man8/xfs_io.8 +++ b/man/man8/xfs_io.8 @@ -1243,7 +1243,7 @@ .SH MEMORY MAPPED I/O COMMANDS .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 @@ .SH FILESYSTEM COMMANDS 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 @@ .SH FILESYSTEM COMMANDS .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