diff mbox series

[1/6,V2] xfs_io.8: rearrange command listings by section

Message ID 095fc573-e961-50f6-17ca-cb4ea707e1e2@sandeen.net (mailing list archive)
State Accepted
Headers show
Series [1/6,V2] xfs_io.8: rearrange command listings by section | expand

Commit Message

Eric Sandeen Dec. 5, 2018, 3:21 a.m. UTC
From: Darrick J. Wong <darrick.wong@oracle.com>

Most of the commands listed under "OTHER COMMANDS" apply to files
or filesystems.  Create a new "FILESYSTEM COMMANDS" section and
populate it appropriately, and move others to "FILE IO"

Here's what moves:

fsmap: moves from file io commands to filesystem commands

>From the OTHER COMMANDS section:

lsattr/chattr: moves to file io commands
flink: moves to file io commands
stat/statx: moves to file io commands
lsproj/chproj: moves to file io commands
parent: moves to file io commands
[gs]et_encpolicy: moves to file io commands
freeze/thaw: move to filesystem commands
inject: move to filesystem commands
resblks: move to filesystem commands
shutdown: move to filesystem commands
statfs: move to filesystem commands
label: move to filesystem commands

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
[sandeen: do away with FILE IO / FILE command distinction]
---

V2: move all of the "FILE COMMANDS" up into the "FILE I/O" section
because I cannot tell what the difference between the two is intended
to be, and arbitrary distinctions only seems more confusing.

If anybody really wants to try to suss that out it can be categorized
further in a later patch.

Comments

Darrick J. Wong Dec. 5, 2018, 5:56 p.m. UTC | #1
On Tue, Dec 04, 2018 at 09:21:39PM -0600, Eric Sandeen wrote:
> From: Darrick J. Wong <darrick.wong@oracle.com>
> 
> Most of the commands listed under "OTHER COMMANDS" apply to files
> or filesystems.  Create a new "FILESYSTEM COMMANDS" section and
> populate it appropriately, and move others to "FILE IO"
> 
> Here's what moves:
> 
> fsmap: moves from file io commands to filesystem commands
> 
> >From the OTHER COMMANDS section:
> 
> lsattr/chattr: moves to file io commands
> flink: moves to file io commands
> stat/statx: moves to file io commands
> lsproj/chproj: moves to file io commands
> parent: moves to file io commands
> [gs]et_encpolicy: moves to file io commands
> freeze/thaw: move to filesystem commands
> inject: move to filesystem commands
> resblks: move to filesystem commands
> shutdown: move to filesystem commands
> statfs: move to filesystem commands
> label: move to filesystem commands
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> [sandeen: do away with FILE IO / FILE command distinction]
> ---
> 
> V2: move all of the "FILE COMMANDS" up into the "FILE I/O" section
> because I cannot tell what the difference between the two is intended
> to be, and arbitrary distinctions only seems more confusing.
> 
> If anybody really wants to try to suss that out it can be categorized
> further in a later patch.

Looks fine to me, thanks for fixing this up.

Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>

--D

> diff --git a/man/man8/xfs_io.8 b/man/man8/xfs_io.8
> index f1099c3..a37ed3c 100644
> --- a/man/man8/xfs_io.8
> +++ b/man/man8/xfs_io.8
> @@ -338,108 +338,6 @@ or ends in a hole,
>  will print the hole, truncated to the requested range.
>  .RE
>  .TP
> -.BI "fsmap [ \-d | \-l | \-r ] [ \-m | \-v ] [ \-n " nx " ] [ " start " ] [ " end " ]
> -Prints the mapping of disk blocks used by the filesystem hosting the current
> -file.  The map lists each extent used by files, allocation group metadata,
> -journalling logs, and static filesystem metadata, as well as any
> -regions that are unused.
> -Each line of the listings takes the following form:
> -.PP
> -.RS
> -.IR extent ": " major ":" minor " [" startblock .. endblock "]: " owner " " startoffset .. endoffset " " length
> -.PP
> -Static filesystem metadata, allocation group metadata, btrees,
> -journalling logs, and free space are marked by replacing the
> -.IR startoffset .. endoffset
> -with the appropriate marker.
> -All blocks, offsets, and lengths are specified in units of 512-byte
> -blocks, no matter what the filesystem's block size is.
> -The optional
> -.I start
> -and
> -.I end
> -arguments can be used to constrain the output to a particular range of
> -disk blocks.
> -If these two options are specified, exactly one of
> -.BR "-d" ", " "-l" ", or " "-r"
> -must also be set.
> -.RE
> -.RS 1.0i
> -.PD 0
> -.TP
> -.BI \-d
> -Display only extents from the data device.
> -This option only applies for XFS filesystems.
> -.TP
> -.BI \-l
> -Display only extents from the external log device.
> -This option only applies to XFS filesystems.
> -.TP
> -.BI \-r
> -Display only extents from the realtime device.
> -This option only applies to XFS filesystems.
> -.TP
> -.BI \-m
> -Display results in a machine readable format (CSV).
> -This option is not compatible with the
> -.B \-v
> -flag.
> -The columns of the output are: extent number, device major, device minor,
> -physical start, physical end, owner, offset start, offset end, length.
> -The start, end, and length numbers are provided in units of 512b.
> -The owner field is a special string that takes the form:
> -
> -.RS 1.0i
> -.PD 0
> -.TP 0.4i
> -.I inode_%lld_data
> -for inode data.
> -.TP
> -.I inode_%lld_data_bmbt
> -for inode data extent maps.
> -.TP
> -.I inode_%lld_attr
> -for inode extended attribute data.
> -.TP
> -.I inode_%lld_attr_bmbt
> -for inode extended attribute extent maps.
> -.TP
> -.I special_%u:%u
> -for other filesystem metadata.
> -.PD
> -.RE
> -
> -.TP
> -.BI \-n " num_extents"
> -If this option is given,
> -.B fsmap
> -obtains the extent list of the file in groups of
> -.I num_extents
> -extents.
> -In the absence of
> -.BR "-n" ", " "fsmap"
> -queries the system for extents in groups of 131,072 records.
> -.TP
> -.B \-v
> -Shows verbose information.
> -When this flag is specified, additional AG specific information is
> -appended to each line in the following form:
> -.IP
> -.RS 1.2i
> -.IR agno " (" startagblock .. endagblock ") " nblocks " " flags
> -.RE
> -.IP
> -A second
> -.B \-v
> -option will print out the
> -.I flags
> -legend.
> -This option is not compatible with the
> -.B \-m
> -flag.
> -.RE
> -.PD
> -.TP
>  .BI "extsize [ \-R | \-D ] [ " value " ]"
>  Display and/or modify the preferred extent size used when allocating
>  space for the currently open file. If the
> @@ -782,6 +680,144 @@ bytes of data.
>  .RE
>  .PD
>  .TP
> +.BI swapext " donor_file "
> +Swaps extent forks between files. The current open file is the target. The donor
> +file is specified by path. Note that file data is not copied (file content moves
> +with the fork(s)).
> +.TP
> +.BI "set_encpolicy [ \-c " mode " ] [ \-n " mode " ] [ \-f " flags " ] [ \-v " version " ] [ " keydesc " ]"
> +On filesystems that support encryption, assign an encryption policy to the
> +current file.
> +.I keydesc
> +is a 16-byte hex string which identifies the encryption key to use.
> +If not specified, a "default" key descriptor of all 0's will be used.
> +.RS 1.0i
> +.PD 0
> +.TP 0.4i
> +.BI \-c " mode"
> +contents encryption mode (e.g. AES-256-XTS)
> +.TP
> +.BI \-n " mode"
> +filenames encryption mode (e.g. AES-256-CTS)
> +.TP
> +.BI \-f " flags"
> +policy flags (numeric)
> +.TP
> +.BI \-v " version"
> +version of policy structure (numeric)
> +.RE
> +.PD
> +.TP
> +.BR get_encpolicy
> +On filesystems that support encryption, display the encryption policy of the
> +current file.
> +
> +.TP
> +.BR lsattr " [ " \-R " | " \-D " | " \-a " | " \-v " ]"
> +List extended inode flags on the currently open file. If the
> +.B \-R
> +option is specified, a recursive descent is performed
> +for all directory entries below the currently open file
> +.RB ( \-D
> +can be used to restrict the output to directories only).
> +This is a depth first descent, it does not follow symlinks and
> +it also does not cross mount points.
> +.TP
> +.BR chattr " [ " \-R " | " \-D " ] [ " + / \-riasAdtPneEfSxC " ]"
> +Change extended inode flags on the currently open file. The
> +.B \-R
> +and
> +.B \-D
> +options have the same meaning as above. The mapping between each
> +letter and the inode flags (refer to
> +.BR xfsctl (3)
> +for the full list) is available via the
> +.B help
> +command.
> +.TP
> +.BI "flink " path
> +Link the currently open file descriptor into the filesystem namespace.
> +.TP
> +.BR stat " [ " \-v "|" \-r " ]"
> +Selected statistics from
> +.BR stat (2)
> +and the XFS_IOC_GETXATTR system call on the current file. If the
> +.B \-v
> +option is specified, the atime (last access), mtime
> +(last modify), and ctime (last change) timestamps are also displayed.  The
> +.B \-r
> +option dumps raw fields from the stat structure.
> +.TP
> +.BI "statx [ \-v|\-r ][ \-m " basic " | \-m " all " | -m " <mask> " ][ \-FD ]"
> +Selected statistics from
> +.BR stat (2)
> +and the XFS_IOC_GETXATTR system call on the current file.
> +.RS 1.0i
> +.PD 0
> +.TP 0.4i
> +.B \-v
> +Show timestamps.
> +.TP
> +.B \-r
> +Dump raw statx structure values.
> +.TP
> +.B \-m basic
> +Set the field mask for the statx call to STATX_BASIC_STATS.
> +.TP
> +.B \-m all
> +Set the the field mask for the statx call to STATX_ALL (default).
> +.TP
> +.B \-m <mask>
> +Specify a numeric field mask for the statx call.
> +.TP
> +.B \-F
> +Force the attributes to be synced with the server.
> +.TP
> +.B \-D
> +Don't sync attributes with the server.
> +.PD
> +.RE
> +.TP
> +.BR chproj " [ " \-R | \-D " ]"
> +Modifies the project identifier associated with the current path. The 
> +.B \-R
> +option will recursively descend if the current path is a directory. The 
> +.B \-D
> +option will also recursively descend, only setting modifying projects 
> +on subdirectories.  See the
> +.BR xfs_quota (8)
> +manual page for more information about project identifiers.
> +.TP
> +.BR lsproj " [ " \-R | \-D " ]"
> +Displays the project identifier associated with the current path. The 
> +.B \-R
> +and
> +.B \-D
> +options behave as described above, in
> +.B chproj.
> +.TP
> +.BR parent " [ " \-cpv " ]"
> +By default this command prints out the parent inode numbers,
> +inode generation numbers and basenames of all the hardlinks which
> +point to the inode of the current file.
> +.RS 1.0i
> +.PD 0
> +.TP 0.4i
> +.B \-p
> +the output is similar to the default output except pathnames up to
> +the mount-point are printed out instead of the component name.
> +.TP
> +.B \-c
> +the file's filesystem will check all the parent attributes for consistency.
> +.TP
> +.B \-v
> +verbose output will be printed.
> +.RE
> +.IP
> +.B [NOTE: Not currently operational on Linux.]
> +.RE
> +.PD
> +.TP
>  .BI utimes " atime_sec atime_nsec mtime_sec mtime_nsec"
>  The utimes command changes the atime and mtime of the current file.
>  sec uses UNIX timestamp notation and is the seconds elapsed since
> @@ -789,11 +825,7 @@ sec uses UNIX timestamp notation and is the seconds elapsed since
>  nsec is the nanoseconds since the sec. This value needs to be in
>  the range 0-999999999 with UTIME_NOW and UTIME_OMIT being exceptions.
>  Each (sec, nsec) pair constitutes a single timestamp value.
> -.TP
> -.BI swapext " donor_file "
> -Swaps extent forks between files. The current open file is the target. The donor
> -file is specified by path. Note that file data is not copied (file content moves
> -with the fork(s)).
> +
>  
>  .SH MEMORY MAPPED I/O COMMANDS
>  .TP
> @@ -946,63 +978,16 @@ which forces the maximum readahead.
>  Dumps a list of pages or ranges of pages that are currently in core,
>  for the current memory mapping.
>  
> -.SH OTHER COMMANDS
> +.SH FILESYSTEM COMMANDS
>  .TP
> -.BR "help [ " command " ]"
> -Display a brief description of one or all commands.
> -.TP
> -.B print
> -Display a list of all open files and memory mapped regions.
> -The current file and current mapping are distinguishable from
> -any others.
> -.TP
> -.B p
> -See the
> -.B print
> -command.
> -.TP
> -.B quit
> -Exit
> -.BR xfs_io .
> -.TP
> -.B q
> -See the
> -.B quit
> -command.
> -.TP
> -.BR lsattr " [ " \-R " | " \-D " | " \-a " | " \-v " ]"
> -List extended inode flags on the currently open file. If the
> -.B \-R
> -option is specified, a recursive descent is performed
> -for all directory entries below the currently open file
> -.RB ( \-D
> -can be used to restrict the output to directories only).
> -This is a depth first descent, it does not follow symlinks and
> -it also does not cross mount points.
> -.TP
> -.BR chattr " [ " \-R " | " \-D " ] [ " + / \-riasAdtPneEfSxC " ]"
> -Change extended inode flags on the currently open file. The
> -.B \-R
> -and
> -.B \-D
> -options have the same meaning as above. The mapping between each
> -letter and the inode flags (refer to
> -.BR xfsctl (3)
> -for the full list) is available via the
> -.B help
> -command.
> -.TP
> -.B freeze
> -Suspend all write I/O requests to the filesystem of the current file.
> -Only available in expert mode and requires privileges.
> +.B freeze
> +Suspend all write I/O requests to the filesystem of the current file.
> +Only available in expert mode and requires privileges.
>  .TP
>  .B thaw
>  Undo the effects of a filesystem freeze operation.
>  Only available in expert mode and requires privileges.
>  .TP
> -.BI "flink " path
> -Link the currently open file descriptor into the filesystem namespace.
> -.TP
>  .BI "inject [ " tag " ]"
>  Inject errors into a filesystem to observe filesystem behavior at
>  specific points under adverse conditions. Without the
> @@ -1036,92 +1021,12 @@ down, matching XFS behavior when critical corruption is encountered.
>  .PD
>  .RE
>  .TP
> -.BR stat " [ " \-v "|" \-r " ]"
> -Selected statistics from
> -.BR stat (2)
> -and the XFS_IOC_GETXATTR system call on the current file. If the
> -.B \-v
> -option is specified, the atime (last access), mtime
> -(last modify), and ctime (last change) timestamps are also displayed.  The
> -.B \-r
> -option dumps raw fields from the stat structure.
> -.TP
> -.BI "statx [ \-v|\-r ][ \-m " basic " | \-m " all " | -m " <mask> " ][ \-FD ]"
> -Selected statistics from
> -.BR stat (2)
> -and the XFS_IOC_GETXATTR system call on the current file.
> -.RS 1.0i
> -.PD 0
> -.TP 0.4i
> -.B \-v
> -Show timestamps.
> -.TP
> -.B \-r
> -Dump raw statx structure values.
> -.TP
> -.B \-m basic
> -Set the field mask for the statx call to STATX_BASIC_STATS.
> -.TP
> -.B \-m all
> -Set the the field mask for the statx call to STATX_ALL (default).
> -.TP
> -.B \-m <mask>
> -Specify a numeric field mask for the statx call.
> -.TP
> -.B \-F
> -Force the attributes to be synced with the server.
> -.TP
> -.B \-D
> -Don't sync attributes with the server.
> -.PD
> -.RE
> -.TP
>  .B statfs
>  Selected statistics from
>  .BR statfs (2)
>  and the XFS_IOC_FSGEOMETRY
>  system call on the filesystem where the current file resides.
>  .TP
> -.BR chproj " [ " \-R | \-D " ]"
> -Modifies the project identifier associated with the current path. The 
> -.B \-R
> -option will recursively descend if the current path is a directory. The 
> -.B \-D
> -option will also recursively descend, only setting modifying projects 
> -on subdirectories.  See the
> -.BR xfs_quota (8)
> -manual page for more information about project identifiers.
> -.TP
> -.BR lsproj " [ " \-R | \-D " ]"
> -Displays the project identifier associated with the current path. The 
> -.B \-R
> -and
> -.B \-D
> -options behave as described above, in
> -.B chproj.
> -.TP
> -.BR parent " [ " \-cpv " ]"
> -By default this command prints out the parent inode numbers,
> -inode generation numbers and basenames of all the hardlinks which
> -point to the inode of the current file.
> -.RS 1.0i
> -.PD 0
> -.TP 0.4i
> -.B \-p
> -the output is similar to the default output except pathnames up to
> -the mount-point are printed out instead of the component name.
> -.TP
> -.B \-c
> -the file's filesystem will check all the parent attributes for consistency.
> -.TP
> -.B \-v
> -verbose output will be printed.
> -.RE
> -.IP
> -.B [NOTE: Not currently operational on Linux.]
> -.RE
> -.PD
> -.TP
>  .BI "inode  [ [ -n ] " number " ] [ -v ]"
>  The inode command queries physical information about an inode. With
>  no arguments, it will return 1 or 0, indicating whether or not any
> @@ -1146,33 +1051,6 @@ was specified on the command line, the maximum possible inode number in
>  the system will be printed along with its size.
>  .PD
>  .TP
> -.BI "set_encpolicy [ \-c " mode " ] [ \-n " mode " ] [ \-f " flags " ] [ \-v " version " ] [ " keydesc " ]"
> -On filesystems that support encryption, assign an encryption policy to the
> -current file.
> -.I keydesc
> -is a 16-byte hex string which identifies the encryption key to use.
> -If not specified, a "default" key descriptor of all 0's will be used.
> -.RS 1.0i
> -.PD 0
> -.TP 0.4i
> -.BI \-c " mode"
> -contents encryption mode (e.g. AES-256-XTS)
> -.TP
> -.BI \-n " mode"
> -filenames encryption mode (e.g. AES-256-CTS)
> -.TP
> -.BI \-f " flags"
> -policy flags (numeric)
> -.TP
> -.BI \-v " version"
> -version of policy structure (numeric)
> -.RE
> -.PD
> -.TP
> -.BR get_encpolicy
> -On filesystems that support encryption, display the encryption policy of the
> -current file.
> -.TP
>  .BI "scrub " type " [ " agnumber " | " "ino" " " "gen" " ]"
>  Scrub internal XFS filesystem metadata.  The
>  .BI type
> @@ -1191,6 +1069,146 @@ For AG metadata, one AG number must be specified.
>  For file metadata, the repair is applied to the open file unless the
>  inode number and generation number are specified.
>  .TP
> +.BI "label" " " "[ -c | -s " label " ] "
> +On filesystems that support online label manipulation, get, set, or clear the
> +filesystem label.  With no options, print the current filesystem label.  The
> +.B \-c
> +option clears the filesystem label by setting it to the null string.  The
> +.BI "\-s " label
> +option sets the filesystem label to
> +.IR label .
> +If the label is longer than the filesystem will accept,
> +.B xfs_io
> +will print an error message.  XFS filesystem labels can be at most 12
> +characters long.
> +.TP
> +.BI "fsmap [ \-d | \-l | \-r ] [ \-m | \-v ] [ \-n " nx " ] [ " start " ] [ " end " ]
> +Prints the mapping of disk blocks used by the filesystem hosting the current
> +file.  The map lists each extent used by files, allocation group metadata,
> +journalling logs, and static filesystem metadata, as well as any
> +regions that are unused.
> +Each line of the listings takes the following form:
> +.PP
> +.RS
> +.IR extent ": " major ":" minor " [" startblock .. endblock "]: " owner " " startoffset .. endoffset " " length
> +.PP
> +Static filesystem metadata, allocation group metadata, btrees,
> +journalling logs, and free space are marked by replacing the
> +.IR startoffset .. endoffset
> +with the appropriate marker.
> +All blocks, offsets, and lengths are specified in units of 512-byte
> +blocks, no matter what the filesystem's block size is.
> +The optional
> +.I start
> +and
> +.I end
> +arguments can be used to constrain the output to a particular range of
> +disk blocks.
> +If these two options are specified, exactly one of
> +.BR "-d" ", " "-l" ", or " "-r"
> +must also be set.
> +.RE
> +.RS 1.0i
> +.PD 0
> +.TP
> +.BI \-d
> +Display only extents from the data device.
> +This option only applies for XFS filesystems.
> +.TP
> +.BI \-l
> +Display only extents from the external log device.
> +This option only applies to XFS filesystems.
> +.TP
> +.BI \-r
> +Display only extents from the realtime device.
> +This option only applies to XFS filesystems.
> +.TP
> +.BI \-m
> +Display results in a machine readable format (CSV).
> +This option is not compatible with the
> +.B \-v
> +flag.
> +The columns of the output are: extent number, device major, device minor,
> +physical start, physical end, owner, offset start, offset end, length.
> +The start, end, and length numbers are provided in units of 512b.
> +The owner field is a special string that takes the form:
> +
> +.RS 1.0i
> +.PD 0
> +.TP 0.4i
> +.I inode_%lld_data
> +for inode data.
> +.TP
> +.I inode_%lld_data_bmbt
> +for inode data extent maps.
> +.TP
> +.I inode_%lld_attr
> +for inode extended attribute data.
> +.TP
> +.I inode_%lld_attr_bmbt
> +for inode extended attribute extent maps.
> +.TP
> +.I special_%u:%u
> +for other filesystem metadata.
> +.PD
> +.RE
> +
> +.TP
> +.BI \-n " num_extents"
> +If this option is given,
> +.B fsmap
> +obtains the extent list of the file in groups of
> +.I num_extents
> +extents.
> +In the absence of
> +.BR "-n" ", " "fsmap"
> +queries the system for extents in groups of 131,072 records.
> +.TP
> +.B \-v
> +Shows verbose information.
> +When this flag is specified, additional AG specific information is
> +appended to each line in the following form:
> +.IP
> +.RS 1.2i
> +.IR agno " (" startagblock .. endagblock ") " nblocks " " flags
> +.RE
> +.IP
> +A second
> +.B \-v
> +option will print out the
> +.I flags
> +legend.
> +This option is not compatible with the
> +.B \-m
> +flag.
> +.RE
> +.PD
> +
> +
> +.SH OTHER COMMANDS
> +.TP
> +.BR "help [ " command " ]"
> +Display a brief description of one or all commands.
> +.TP
> +.B print
> +Display a list of all open files and memory mapped regions.
> +The current file and current mapping are distinguishable from
> +any others.
> +.TP
> +.B p
> +See the
> +.B print
> +command.
> +.TP
> +.B quit
> +Exit
> +.BR xfs_io .
> +.TP
> +.B q
> +See the
> +.B quit
> +command.
> +.TP
>  .BI "log_writes \-d " device " \-m "  mark
>  Create a mark named
>  .I mark
> @@ -1210,19 +1228,6 @@ See the
>  .B log_writes
>  command.
>  .TP
> -.BI "label" " " "[ -c | -s " label " ] "
> -On filesystems that support online label manipulation, get, set, or clear the
> -filesystem label.  With no options, print the current filesystem label.  The
> -.B \-c
> -option clears the filesystem label by setting it to the null string.  The
> -.BI "\-s " label
> -option sets the filesystem label to
> -.IR label .
> -If the label is longer than the filesystem will accept,
> -.B xfs_io
> -will print an error message.  XFS filesystem labels can be at most 12
> -characters long.
> -.TP
>  .B crc32cselftest
>  Test the internal crc32c implementation to make sure that it computes results
>  correctly.
>
diff mbox series

Patch

diff --git a/man/man8/xfs_io.8 b/man/man8/xfs_io.8
index f1099c3..a37ed3c 100644
--- a/man/man8/xfs_io.8
+++ b/man/man8/xfs_io.8
@@ -338,108 +338,6 @@  or ends in a hole,
 will print the hole, truncated to the requested range.
 .RE
 .TP
-.BI "fsmap [ \-d | \-l | \-r ] [ \-m | \-v ] [ \-n " nx " ] [ " start " ] [ " end " ]
-Prints the mapping of disk blocks used by the filesystem hosting the current
-file.  The map lists each extent used by files, allocation group metadata,
-journalling logs, and static filesystem metadata, as well as any
-regions that are unused.
-Each line of the listings takes the following form:
-.PP
-.RS
-.IR extent ": " major ":" minor " [" startblock .. endblock "]: " owner " " startoffset .. endoffset " " length
-.PP
-Static filesystem metadata, allocation group metadata, btrees,
-journalling logs, and free space are marked by replacing the
-.IR startoffset .. endoffset
-with the appropriate marker.
-All blocks, offsets, and lengths are specified in units of 512-byte
-blocks, no matter what the filesystem's block size is.
-The optional
-.I start
-and
-.I end
-arguments can be used to constrain the output to a particular range of
-disk blocks.
-If these two options are specified, exactly one of
-.BR "-d" ", " "-l" ", or " "-r"
-must also be set.
-.RE
-.RS 1.0i
-.PD 0
-.TP
-.BI \-d
-Display only extents from the data device.
-This option only applies for XFS filesystems.
-.TP
-.BI \-l
-Display only extents from the external log device.
-This option only applies to XFS filesystems.
-.TP
-.BI \-r
-Display only extents from the realtime device.
-This option only applies to XFS filesystems.
-.TP
-.BI \-m
-Display results in a machine readable format (CSV).
-This option is not compatible with the
-.B \-v
-flag.
-The columns of the output are: extent number, device major, device minor,
-physical start, physical end, owner, offset start, offset end, length.
-The start, end, and length numbers are provided in units of 512b.
-The owner field is a special string that takes the form:
-
-.RS 1.0i
-.PD 0
-.TP 0.4i
-.I inode_%lld_data
-for inode data.
-.TP
-.I inode_%lld_data_bmbt
-for inode data extent maps.
-.TP
-.I inode_%lld_attr
-for inode extended attribute data.
-.TP
-.I inode_%lld_attr_bmbt
-for inode extended attribute extent maps.
-.TP
-.I special_%u:%u
-for other filesystem metadata.
-.PD
-.RE
-
-.TP
-.BI \-n " num_extents"
-If this option is given,
-.B fsmap
-obtains the extent list of the file in groups of
-.I num_extents
-extents.
-In the absence of
-.BR "-n" ", " "fsmap"
-queries the system for extents in groups of 131,072 records.
-.TP
-.B \-v
-Shows verbose information.
-When this flag is specified, additional AG specific information is
-appended to each line in the following form:
-.IP
-.RS 1.2i
-.IR agno " (" startagblock .. endagblock ") " nblocks " " flags
-.RE
-.IP
-A second
-.B \-v
-option will print out the
-.I flags
-legend.
-This option is not compatible with the
-.B \-m
-flag.
-.RE
-.PD
-.TP
 .BI "extsize [ \-R | \-D ] [ " value " ]"
 Display and/or modify the preferred extent size used when allocating
 space for the currently open file. If the
@@ -782,6 +680,144 @@  bytes of data.
 .RE
 .PD
 .TP
+.BI swapext " donor_file "
+Swaps extent forks between files. The current open file is the target. The donor
+file is specified by path. Note that file data is not copied (file content moves
+with the fork(s)).
+.TP
+.BI "set_encpolicy [ \-c " mode " ] [ \-n " mode " ] [ \-f " flags " ] [ \-v " version " ] [ " keydesc " ]"
+On filesystems that support encryption, assign an encryption policy to the
+current file.
+.I keydesc
+is a 16-byte hex string which identifies the encryption key to use.
+If not specified, a "default" key descriptor of all 0's will be used.
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.BI \-c " mode"
+contents encryption mode (e.g. AES-256-XTS)
+.TP
+.BI \-n " mode"
+filenames encryption mode (e.g. AES-256-CTS)
+.TP
+.BI \-f " flags"
+policy flags (numeric)
+.TP
+.BI \-v " version"
+version of policy structure (numeric)
+.RE
+.PD
+.TP
+.BR get_encpolicy
+On filesystems that support encryption, display the encryption policy of the
+current file.
+
+.TP
+.BR lsattr " [ " \-R " | " \-D " | " \-a " | " \-v " ]"
+List extended inode flags on the currently open file. If the
+.B \-R
+option is specified, a recursive descent is performed
+for all directory entries below the currently open file
+.RB ( \-D
+can be used to restrict the output to directories only).
+This is a depth first descent, it does not follow symlinks and
+it also does not cross mount points.
+.TP
+.BR chattr " [ " \-R " | " \-D " ] [ " + / \-riasAdtPneEfSxC " ]"
+Change extended inode flags on the currently open file. The
+.B \-R
+and
+.B \-D
+options have the same meaning as above. The mapping between each
+letter and the inode flags (refer to
+.BR xfsctl (3)
+for the full list) is available via the
+.B help
+command.
+.TP
+.BI "flink " path
+Link the currently open file descriptor into the filesystem namespace.
+.TP
+.BR stat " [ " \-v "|" \-r " ]"
+Selected statistics from
+.BR stat (2)
+and the XFS_IOC_GETXATTR system call on the current file. If the
+.B \-v
+option is specified, the atime (last access), mtime
+(last modify), and ctime (last change) timestamps are also displayed.  The
+.B \-r
+option dumps raw fields from the stat structure.
+.TP
+.BI "statx [ \-v|\-r ][ \-m " basic " | \-m " all " | -m " <mask> " ][ \-FD ]"
+Selected statistics from
+.BR stat (2)
+and the XFS_IOC_GETXATTR system call on the current file.
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.B \-v
+Show timestamps.
+.TP
+.B \-r
+Dump raw statx structure values.
+.TP
+.B \-m basic
+Set the field mask for the statx call to STATX_BASIC_STATS.
+.TP
+.B \-m all
+Set the the field mask for the statx call to STATX_ALL (default).
+.TP
+.B \-m <mask>
+Specify a numeric field mask for the statx call.
+.TP
+.B \-F
+Force the attributes to be synced with the server.
+.TP
+.B \-D
+Don't sync attributes with the server.
+.PD
+.RE
+.TP
+.BR chproj " [ " \-R | \-D " ]"
+Modifies the project identifier associated with the current path. The 
+.B \-R
+option will recursively descend if the current path is a directory. The 
+.B \-D
+option will also recursively descend, only setting modifying projects 
+on subdirectories.  See the
+.BR xfs_quota (8)
+manual page for more information about project identifiers.
+.TP
+.BR lsproj " [ " \-R | \-D " ]"
+Displays the project identifier associated with the current path. The 
+.B \-R
+and
+.B \-D
+options behave as described above, in
+.B chproj.
+.TP
+.BR parent " [ " \-cpv " ]"
+By default this command prints out the parent inode numbers,
+inode generation numbers and basenames of all the hardlinks which
+point to the inode of the current file.
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.B \-p
+the output is similar to the default output except pathnames up to
+the mount-point are printed out instead of the component name.
+.TP
+.B \-c
+the file's filesystem will check all the parent attributes for consistency.
+.TP
+.B \-v
+verbose output will be printed.
+.RE
+.IP
+.B [NOTE: Not currently operational on Linux.]
+.RE
+.PD
+.TP
 .BI utimes " atime_sec atime_nsec mtime_sec mtime_nsec"
 The utimes command changes the atime and mtime of the current file.
 sec uses UNIX timestamp notation and is the seconds elapsed since
@@ -789,11 +825,7 @@  sec uses UNIX timestamp notation and is the seconds elapsed since
 nsec is the nanoseconds since the sec. This value needs to be in
 the range 0-999999999 with UTIME_NOW and UTIME_OMIT being exceptions.
 Each (sec, nsec) pair constitutes a single timestamp value.
-.TP
-.BI swapext " donor_file "
-Swaps extent forks between files. The current open file is the target. The donor
-file is specified by path. Note that file data is not copied (file content moves
-with the fork(s)).
+
 
 .SH MEMORY MAPPED I/O COMMANDS
 .TP
@@ -946,63 +978,16 @@  which forces the maximum readahead.
 Dumps a list of pages or ranges of pages that are currently in core,
 for the current memory mapping.
 
-.SH OTHER COMMANDS
+.SH FILESYSTEM COMMANDS
 .TP
-.BR "help [ " command " ]"
-Display a brief description of one or all commands.
-.TP
-.B print
-Display a list of all open files and memory mapped regions.
-The current file and current mapping are distinguishable from
-any others.
-.TP
-.B p
-See the
-.B print
-command.
-.TP
-.B quit
-Exit
-.BR xfs_io .
-.TP
-.B q
-See the
-.B quit
-command.
-.TP
-.BR lsattr " [ " \-R " | " \-D " | " \-a " | " \-v " ]"
-List extended inode flags on the currently open file. If the
-.B \-R
-option is specified, a recursive descent is performed
-for all directory entries below the currently open file
-.RB ( \-D
-can be used to restrict the output to directories only).
-This is a depth first descent, it does not follow symlinks and
-it also does not cross mount points.
-.TP
-.BR chattr " [ " \-R " | " \-D " ] [ " + / \-riasAdtPneEfSxC " ]"
-Change extended inode flags on the currently open file. The
-.B \-R
-and
-.B \-D
-options have the same meaning as above. The mapping between each
-letter and the inode flags (refer to
-.BR xfsctl (3)
-for the full list) is available via the
-.B help
-command.
-.TP
-.B freeze
-Suspend all write I/O requests to the filesystem of the current file.
-Only available in expert mode and requires privileges.
+.B freeze
+Suspend all write I/O requests to the filesystem of the current file.
+Only available in expert mode and requires privileges.
 .TP
 .B thaw
 Undo the effects of a filesystem freeze operation.
 Only available in expert mode and requires privileges.
 .TP
-.BI "flink " path
-Link the currently open file descriptor into the filesystem namespace.
-.TP
 .BI "inject [ " tag " ]"
 Inject errors into a filesystem to observe filesystem behavior at
 specific points under adverse conditions. Without the
@@ -1036,92 +1021,12 @@  down, matching XFS behavior when critical corruption is encountered.
 .PD
 .RE
 .TP
-.BR stat " [ " \-v "|" \-r " ]"
-Selected statistics from
-.BR stat (2)
-and the XFS_IOC_GETXATTR system call on the current file. If the
-.B \-v
-option is specified, the atime (last access), mtime
-(last modify), and ctime (last change) timestamps are also displayed.  The
-.B \-r
-option dumps raw fields from the stat structure.
-.TP
-.BI "statx [ \-v|\-r ][ \-m " basic " | \-m " all " | -m " <mask> " ][ \-FD ]"
-Selected statistics from
-.BR stat (2)
-and the XFS_IOC_GETXATTR system call on the current file.
-.RS 1.0i
-.PD 0
-.TP 0.4i
-.B \-v
-Show timestamps.
-.TP
-.B \-r
-Dump raw statx structure values.
-.TP
-.B \-m basic
-Set the field mask for the statx call to STATX_BASIC_STATS.
-.TP
-.B \-m all
-Set the the field mask for the statx call to STATX_ALL (default).
-.TP
-.B \-m <mask>
-Specify a numeric field mask for the statx call.
-.TP
-.B \-F
-Force the attributes to be synced with the server.
-.TP
-.B \-D
-Don't sync attributes with the server.
-.PD
-.RE
-.TP
 .B statfs
 Selected statistics from
 .BR statfs (2)
 and the XFS_IOC_FSGEOMETRY
 system call on the filesystem where the current file resides.
 .TP
-.BR chproj " [ " \-R | \-D " ]"
-Modifies the project identifier associated with the current path. The 
-.B \-R
-option will recursively descend if the current path is a directory. The 
-.B \-D
-option will also recursively descend, only setting modifying projects 
-on subdirectories.  See the
-.BR xfs_quota (8)
-manual page for more information about project identifiers.
-.TP
-.BR lsproj " [ " \-R | \-D " ]"
-Displays the project identifier associated with the current path. The 
-.B \-R
-and
-.B \-D
-options behave as described above, in
-.B chproj.
-.TP
-.BR parent " [ " \-cpv " ]"
-By default this command prints out the parent inode numbers,
-inode generation numbers and basenames of all the hardlinks which
-point to the inode of the current file.
-.RS 1.0i
-.PD 0
-.TP 0.4i
-.B \-p
-the output is similar to the default output except pathnames up to
-the mount-point are printed out instead of the component name.
-.TP
-.B \-c
-the file's filesystem will check all the parent attributes for consistency.
-.TP
-.B \-v
-verbose output will be printed.
-.RE
-.IP
-.B [NOTE: Not currently operational on Linux.]
-.RE
-.PD
-.TP
 .BI "inode  [ [ -n ] " number " ] [ -v ]"
 The inode command queries physical information about an inode. With
 no arguments, it will return 1 or 0, indicating whether or not any
@@ -1146,33 +1051,6 @@  was specified on the command line, the maximum possible inode number in
 the system will be printed along with its size.
 .PD
 .TP
-.BI "set_encpolicy [ \-c " mode " ] [ \-n " mode " ] [ \-f " flags " ] [ \-v " version " ] [ " keydesc " ]"
-On filesystems that support encryption, assign an encryption policy to the
-current file.
-.I keydesc
-is a 16-byte hex string which identifies the encryption key to use.
-If not specified, a "default" key descriptor of all 0's will be used.
-.RS 1.0i
-.PD 0
-.TP 0.4i
-.BI \-c " mode"
-contents encryption mode (e.g. AES-256-XTS)
-.TP
-.BI \-n " mode"
-filenames encryption mode (e.g. AES-256-CTS)
-.TP
-.BI \-f " flags"
-policy flags (numeric)
-.TP
-.BI \-v " version"
-version of policy structure (numeric)
-.RE
-.PD
-.TP
-.BR get_encpolicy
-On filesystems that support encryption, display the encryption policy of the
-current file.
-.TP
 .BI "scrub " type " [ " agnumber " | " "ino" " " "gen" " ]"
 Scrub internal XFS filesystem metadata.  The
 .BI type
@@ -1191,6 +1069,146 @@  For AG metadata, one AG number must be specified.
 For file metadata, the repair is applied to the open file unless the
 inode number and generation number are specified.
 .TP
+.BI "label" " " "[ -c | -s " label " ] "
+On filesystems that support online label manipulation, get, set, or clear the
+filesystem label.  With no options, print the current filesystem label.  The
+.B \-c
+option clears the filesystem label by setting it to the null string.  The
+.BI "\-s " label
+option sets the filesystem label to
+.IR label .
+If the label is longer than the filesystem will accept,
+.B xfs_io
+will print an error message.  XFS filesystem labels can be at most 12
+characters long.
+.TP
+.BI "fsmap [ \-d | \-l | \-r ] [ \-m | \-v ] [ \-n " nx " ] [ " start " ] [ " end " ]
+Prints the mapping of disk blocks used by the filesystem hosting the current
+file.  The map lists each extent used by files, allocation group metadata,
+journalling logs, and static filesystem metadata, as well as any
+regions that are unused.
+Each line of the listings takes the following form:
+.PP
+.RS
+.IR extent ": " major ":" minor " [" startblock .. endblock "]: " owner " " startoffset .. endoffset " " length
+.PP
+Static filesystem metadata, allocation group metadata, btrees,
+journalling logs, and free space are marked by replacing the
+.IR startoffset .. endoffset
+with the appropriate marker.
+All blocks, offsets, and lengths are specified in units of 512-byte
+blocks, no matter what the filesystem's block size is.
+The optional
+.I start
+and
+.I end
+arguments can be used to constrain the output to a particular range of
+disk blocks.
+If these two options are specified, exactly one of
+.BR "-d" ", " "-l" ", or " "-r"
+must also be set.
+.RE
+.RS 1.0i
+.PD 0
+.TP
+.BI \-d
+Display only extents from the data device.
+This option only applies for XFS filesystems.
+.TP
+.BI \-l
+Display only extents from the external log device.
+This option only applies to XFS filesystems.
+.TP
+.BI \-r
+Display only extents from the realtime device.
+This option only applies to XFS filesystems.
+.TP
+.BI \-m
+Display results in a machine readable format (CSV).
+This option is not compatible with the
+.B \-v
+flag.
+The columns of the output are: extent number, device major, device minor,
+physical start, physical end, owner, offset start, offset end, length.
+The start, end, and length numbers are provided in units of 512b.
+The owner field is a special string that takes the form:
+
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.I inode_%lld_data
+for inode data.
+.TP
+.I inode_%lld_data_bmbt
+for inode data extent maps.
+.TP
+.I inode_%lld_attr
+for inode extended attribute data.
+.TP
+.I inode_%lld_attr_bmbt
+for inode extended attribute extent maps.
+.TP
+.I special_%u:%u
+for other filesystem metadata.
+.PD
+.RE
+
+.TP
+.BI \-n " num_extents"
+If this option is given,
+.B fsmap
+obtains the extent list of the file in groups of
+.I num_extents
+extents.
+In the absence of
+.BR "-n" ", " "fsmap"
+queries the system for extents in groups of 131,072 records.
+.TP
+.B \-v
+Shows verbose information.
+When this flag is specified, additional AG specific information is
+appended to each line in the following form:
+.IP
+.RS 1.2i
+.IR agno " (" startagblock .. endagblock ") " nblocks " " flags
+.RE
+.IP
+A second
+.B \-v
+option will print out the
+.I flags
+legend.
+This option is not compatible with the
+.B \-m
+flag.
+.RE
+.PD
+
+
+.SH OTHER COMMANDS
+.TP
+.BR "help [ " command " ]"
+Display a brief description of one or all commands.
+.TP
+.B print
+Display a list of all open files and memory mapped regions.
+The current file and current mapping are distinguishable from
+any others.
+.TP
+.B p
+See the
+.B print
+command.
+.TP
+.B quit
+Exit
+.BR xfs_io .
+.TP
+.B q
+See the
+.B quit
+command.
+.TP
 .BI "log_writes \-d " device " \-m "  mark
 Create a mark named
 .I mark
@@ -1210,19 +1228,6 @@  See the
 .B log_writes
 command.
 .TP
-.BI "label" " " "[ -c | -s " label " ] "
-On filesystems that support online label manipulation, get, set, or clear the
-filesystem label.  With no options, print the current filesystem label.  The
-.B \-c
-option clears the filesystem label by setting it to the null string.  The
-.BI "\-s " label
-option sets the filesystem label to
-.IR label .
-If the label is longer than the filesystem will accept,
-.B xfs_io
-will print an error message.  XFS filesystem labels can be at most 12
-characters long.
-.TP
 .B crc32cselftest
 Test the internal crc32c implementation to make sure that it computes results
 correctly.