Merge of master-melb:xfs-cmds:29156a by kenmcd.
Update man pages to linux formatting/macro standards
-.TH HANDLE 3
+.TH HANDLE 3
.SH NAME
path_to_handle, path_to_fshandle, fd_to_handle, handle_to_fshandle, open_by_handle, readlink_by_handle, attr_multi_by_handle, attr_list_by_handle, fssetdm_by_handle, free_handle, getparents_by_handle, getparentpaths_by_handle \- file handle operations
.SH C SYNOPSIS
-.nf
.B #include <sys/types.h>
+.br
.B #include <xfs/handle.h>
-.PP
-.B "int path_to_handle (char *path, void **hanp,"
-.B " size_t *hlen);"
-.PP
-.B "int path_to_fshandle (char *path, void **hanp,"
-.B " size_t *hlen);"
-.PP
-.B "int fd_to_handle (int fd, void **hanp, size_t *hlen);
-.PP
-.B "int handle_to_fshandle (void *hanp, size_t hlen,"
-.B " void **fshanp, size_t *fshlen);
-.PP
-.B "int open_by_handle (void *hanp, size_t hlen,"
-.B " int oflag);"
-.PP
-.B "int readlink_by_handle (void *hanp, size_t hlen,"
-.B " void *buf, size_t bs);
-.PP
-.B "int attr_multi_by_handle (void *hanp, size_t hlen,"
-.B " void *buf, int rtrvcnt,"
-.B " int flags);"
-.PP
-.B "int attr_list_by_handle (void *hanp, size_t hlen,"
-.B " char *buf, size_t bufsiz,"
-.B " int flags,"
-.B " struct attrlist_cursor *cursor);"
-.PP
-.B "int fssetdm_by_handle (void *hanp, size_t hlen,"
-.B " struct fsdmidata *fssetdm);"
-.PP
-.B "void free_handle (void *hanp, size_t hlen);
-.PP
-.B "int getparents_by_handle(void *hanp, size_t hlen,"
-.B " parent_t *buf, size_t bufsiz,"
-.B " parent_cursor_t *cursor,"
-.B " unsigned int *count, unsigned int *more);"
-.PP
-.B "int getparentpaths_by_handle(void *hanp, size_t hlen,"
-.B " parent_t *buf, size_t bufsiz,"
-.B " parent_cursor_t *cursor,"
-.B " unsigned int *count, unsigned int *more);"
-.Op
+.HP
+.BI "int\ path_to_handle(char *" path ", void **" hanp ", size_t *" hlen );
+.HP
+.BI "int\ path_to_fshandle(char *" path ", void **" hanp ", size_t *" hlen );
+.HP
+.BI "int\ fd_to_handle(int " fd ", void **" hanp ", size_t *" hlen );
+.HP
+.BI "int\ handle_to_fshandle(void *" hanp ", size_t " hlen ", void **" fshanp ,
+.BI "size_t *" fshlen );
+.HP
+.BI "int\ open_by_handle(void *" hanp ", size_t " hlen ", int " oflag );
+.HP
+.BI "int\ readlink_by_handle(void *" hanp ", size_t " hlen ", void *" buf ,
+.BI "size_t " bs );
+.HP
+.BI "int\ attr_multi_by_handle(void *" hanp ", size_t " hlen ", void *" buf ,
+.BI "int " rtrvcnt ", int " flags );
+.HP
+.BI "int\ attr_list_by_handle(void *" hanp ", size_t " hlen ", char *" buf ,
+.BI "size_t " bufsiz ", int " flags ", struct attrlist_cursor *" cursor );
+.HP
+.BI "int\ fssetdm_by_handle(void *" hanp ", size_t " hlen ", struct fsdmidata"
+.BI * fssetdm );
+.HP
+.BI "void\ free_handle(void *" hanp ", size_t " hlen );
+.HP
+.BI "int\ getparents_by_handle(void *" hanp ", size_t " hlen ", parent_t *" buf ,
+.BI "size_t " bufsiz ", parent_cursor_t *" cursor ", unsigned int *" count ,
+.BI "unsigned int *" more );
+.HP
+.BI "int\ getparentpaths_by_handle(void *" hanp ", size_t " hlen ", parent_t"
+.BI * buf ", size_t " bufsiz ", parent_cursor_t *" cursor ", unsigned int "
+.BI * count ", unsigned int *" more );
.SH DESCRIPTION
-.PP
-These functions provide a way to perform certain
-filesystem operations without using a file descriptor
-to access filesystem objects.
-They are intended for use by a limited set of system utilities
-such as backup programs.
-They are supported only by the XFS filesystem.
+These functions provide a way to perform certain filesystem operations
+without using a file descriptor to access filesystem objects. They are
+intended for use by a limited set of system utilities such as backup
+programs. They are supported only by the XFS filesystem.
Link with the
-.I libhandle
+.B libhandle
library to access these functions.
-.sp
-A
-.I handle
-uniquely identifies a filesystem object
-or an entire filesystem.
-There is one and only one
-handle per filesystem or filesystem object.
-Handles consist of some number of bytes.
-The size of a handle
-(i.e. the number of bytes comprising it)
-varies by the type of handle
-and may vary for different objects
-of the same type.
+.PP
+A handle,
+.IR hanp ,
+uniquely identifies a filesystem object or an entire filesystem.
+There is one and only one handle per filesystem or filesystem object.
+Handles consist of some number of bytes. The size of a handle
+(i.e. the number of bytes comprising it) varies by the type of handle
+and may vary for different objects of the same type.
The content of a handle is opaque to applications.
-Since handle sizes vary
-and their contents are opaque,
-handles are described by two quantities,
-a pointer and a size.
-The size indicates the number of bytes
-in the handle which are pointed to by the pointer.
-.P
-The \f2path_to_handle\f1() function
-returns the handle for the object given by the
+Since handle sizes vary and their contents are opaque,
+handles are described by two quantities, a pointer
+.RI ( hanp ") and a size (" hlen ).
+The size,
+.IR hlen ,
+indicates the number of bytes in the handle which are pointed to by the pointer.
+.PP
+The
+.BR path_to_handle ()
+function returns the handle for the object given by the
.I path
-argument.
-If the final component of the path name is a symbolic link,
+argument. If the final component of the path name is a symbolic link,
the handle returned is that of the link itself.
-.P
-The \f2path_to_fshandle\f1() function
-returns the handle for the filesystem
-in which the object given by the
+.PP
+The
+.BR path_to_fshandle ()
+function returns the handle for the filesystem in which the object given by the
.I path
argument resides.
-.P
-The \f2fd_to_handle\f1() function
-returns the handle for the object referenced by the
+.PP
+The
+.BR fd_to_handle ()
+function returns the handle for the object referenced by the
.I fd
-argument,
-which must be a valid file descriptor.
-.P
-The \f2handle_to_fshandle\f1() function
-returns the handle for the filesystem
-in which the object referenced by the
-handle given by the
+argument, which must be a valid file descriptor.
+.PP
+The
+.BR handle_to_fshandle ()
+function returns the handle for the filesystem in which the object
+referenced by the handle given by the
.I hanp
and
.I hlen
arguments resides.
-.P
-The \f2open_by_handle\f1() function
-opens a file descriptor for the object referenced
-by a handle.
+.PP
+The
+.BR open_by_handle ()
+function opens a file descriptor for the object referenced by a handle.
It is analogous and identical to
-.I open(2)
+.BR open (2)
with the exception of accepting handles instead of path names.
-.P
-The \f2readlink_by_handle\f1() function
-returns the contents of a symbolic link
-referenced by a handle.
-.P
-The \f2attr_multi_by_handle\f1() function
-manipulates multiple user attributes on a
-filesystem object.
+.PP
+The
+.BR readlink_by_handle ()
+function returns the contents of a symbolic link referenced by a handle.
+.PP
+The
+.BR attr_multi_by_handle ()
+function manipulates multiple user attributes on a filesystem object.
It is analogous and identical to
-.I attr_multif(3)
+.BR attr_multif (3)
except that a handle is specified instead of a file descriptor.
-.P
-The \f2attr_list_by_handle\f1() function returns
-the names of the user attributes of a filesystem object.
+.PP
+The
+.BR attr_list_by_handle ()
+function returns the names of the user attributes of a filesystem object.
It is analogous and identical to
-.I attr_listf(3)
+.BR attr_listf (3)
except that a handle is specified instead of a file descriptor.
-.P
-The \f2fssetdm_by_handle\f1() function sets the
-di_dmevmask and di_dmstate fields in an XFS on-disk inode.
-It is analogous to the \f2XFS_IOC_FSSETDM\f1
-.I xfsctl(3)
+.PP
+The
+.BR fssetdm_by_handle ()
+function sets the
+.B di_dmevmask
+and
+.B di_dmstate
+fields in an XFS on-disk inode. It is analogous to the
+.BR "XFS_IOC_FSSETDM xfsctl" (3)
command, except that a handle is specified instead of a file.
-.P
-The \f2free_handle\f1() function
-frees the storage allocated for handles
-returned by the following functions:
-\f2path_to_handle\f1(),
-\f2path_to_fshandle\f1(),
-\f2fd_to_handle\f1(),
+.PP
+The
+.BR free_handle ()
+function frees the storage allocated for handles returned by the following
+functions:
+.BR path_to_handle (),
+.BR path_to_fshandle (),
+.BR fd_to_handle (),
and
-\f2handle_to_fshandle\f1().
-.P
-The \f2getparents_by_handle\f1() function returns an array
-of \f2parent_t\f1 structures for each hardlink to
-the inode represented by the given handle. The parent structure
-encodes the parent inode number, generation number and the
-basename of the link.
-This function is not operational on Linux.
-.P
-The \f2getparentpaths_by_handle\f1() function is identical to
-the \f2getparents_by_handle\f1() function except that instead
-of returning the basename it returns the path of the link up
-to the mount point.
-This function is also not operational on Linux.
-.SH "SEE ALSO"
-open(2),
-readlink(2),
-attr_multi(3),
-attr_list(3),
-xfsctl(3),
-xfs(5).
-.SH "DIAGNOSTICS"
+.BR handle_to_fshandle ().
+.PP
+The
+.BR getparents_by_handle ()
+function returns an array of
+.B parent_t
+structures for each hardlink to the inode represented by the given handle.
+The parent structure encodes the parent inode number, generation number and
+the basename of the link.
+.B This function is not operational on Linux.
.PP
+The
+.BR getparentpaths_by_handle ()
+function is identical to the
+.BR getparents_by_handle ()
+function except that instead of returning the basename it returns the path
+of the link up to the mount point.
+.B This function is also not operational on Linux.
+.SH RETURN VALUE
The function
-\f2free_handle\f1()
-has no failure indication.
-The other functions
-return the value 0 to the calling process
-if they succeed;
-otherwise, they return the value \-1 and set
+.BR free_handle ()
+has no failure indication. The other functions return the value 0 to the
+calling process if they succeed; otherwise, they return the value \-1 and set
.I errno
-to indicate the error:
-.sp
-.TP 15
-.SM
-\%[EACCES]
+to indicate the error.
+.SH ERRORS
+.TP
+.B EACCES
Search permission was denied for a component of
.IR path .
-.TP 15
-.SM
-\%[EBADF]
+.TP
+.B EBADF
.I fd
is not a valid and open file descriptor.
-.TP 15
-.SM
-\%[EFAULT]
+.TP
+.B EFAULT
An argument pointed to an invalid address.
-.TP 15
-.SM
-\%[EINVAL]
+.TP
+.B EINVAL
.I path
is in a filesystem that does not support these functions.
-.TP 15
-.SM
-\%[ELOOP]
+.TP
+.B ELOOP
Too many symbolic links were encountered in translating the path name.
-.TP 15
-.SM
-\%[ENAMETOOLONG]
+.TP
+.B ENAMETOOLONG
A component of
.I path
or the entire length of
.I path
exceeds filesystem limits.
-.TP 15
-.SM
-\%[ENOENT]
+.TP
+.B ENOENT
A component of
.I path
does not exist.
-.TP 15
-.SM
-\%[EPERM]
+.TP
+.B EPERM
The caller does not have sufficient privileges.
+.SH SEE ALSO
+.BR open (2),
+.BR readlink (2),
+.BR attr_multi (3),
+.BR attr_list (3),
+.BR xfsctl (3),
+.BR xfs (5).
An XFS filesystem has up to three parts:
a data section, a log section, and a realtime section.
Using the default
-.IR mkfs.xfs (8)
+.BR mkfs.xfs (8)
options, the realtime section is absent, and
the log area is contained within the data section.
The log section can be either separate from the data section
The filesystem sections are divided into a certain number of
.IR blocks ,
whose size is specified at
-.IR mkfs.xfs
+.BR mkfs.xfs (8)
time with the
.B \-b
option.
.I internal
to the data section.
The data section is divided into a number of
-\f2allocation groups\f1.
+.IR "allocation groups" .
The number and size of the allocation groups are chosen by
-.I mkfs.xfs
+.BR mkfs.xfs (8)
so that there is normally a small number of equal-sized groups.
The number of allocation groups controls the amount of parallelism
available in file and block allocation.
since this can cause large amounts of CPU time to be used by
the filesystem, especially when the filesystem is nearly full.
More allocation groups are added (of the original size) when
-.IR xfs_growfs (8)
+.BR xfs_growfs (8)
is run.
.PP
The log section (or area, if it is internal to the data section)
.PP
The realtime section is used to store the data of realtime files.
These files had an attribute bit set through
-.IR xfsctl (3)
+.BR xfsctl (3)
after file creation, before any data was written to the file.
The realtime section is divided into a number of
.I extents
of fixed size (specified at
-.I mkfs.xfs
+.BR mkfs.xfs (8)
time).
Each file in the realtime section has an extent size that
is a multiple of the realtime section extent size.
The first sector contains the superblock.
For allocation groups after the first,
the superblock is just a copy and is not updated after
-.IR mkfs.xfs .
+.BR mkfs.xfs (8).
The next three sectors contain information for block and inode
allocation within the allocation group.
Also contained within each allocation group are data structures
The UUID is stored in every allocation group header and
is used to help distinguish one XFS filesystem from another,
therefore you should avoid using
-.I dd
+.BR dd (1)
or other block-by-block copying programs to copy XFS filesystems.
If two XFS filesystems on the same machine have the same UUID,
-.IR xfsdump (8)
+.BR xfsdump (8)
may become confused when doing incremental and resumed dumps.
-.I xfsdump
+.BR xfsdump (8)
and
-.I xfsrestore
+.BR xfsrestore (8)
are recommended for making copies of XFS filesystems.
-
.SH OPERATIONS
Some functionality specific to the XFS filesystem is accessible to
applications through the
-.IR xfsctl (3)
-and
-by-handle (see
-.IR open_by_handle (3))
+.BR xfsctl (3)
+and by-handle (see
+.BR open_by_handle (3))
interfaces.
-
.SH MOUNT OPTIONS
Refer to the
-.IR mount (8)
+.BR mount (8)
manual entry for descriptions of the individual XFS mount options.
-
.SH SEE ALSO
-xfsctl(3),
-mount(8),
-mkfs.xfs(8),
-xfs_info(8),
-xfs_admin(8),
-xfsdump(8),
-xfsrestore(8).
+.BR xfsctl (3),
+.BR mount (8),
+.BR mkfs.xfs (8),
+.BR xfs_info (8),
+.BR xfs_admin (8),
+.BR xfsdump (8),
+.BR xfsrestore (8).
.SH NAME
fsck.xfs \- do nothing, successfully
.SH SYNOPSIS
-.nf
-\f3fsck.xfs\f1 [ \f3...\f1]
-.fi
+.B fsck.xfs
+[
+.I filesys
+\&... ]
.SH DESCRIPTION
-.I fsck.xfs
+.B fsck.xfs
is called by the generic Linux
-.IR fsck (8)
+.BR fsck (8)
program at startup to check and repair an XFS filesystem.
XFS is a journaling filesystem and performs recovery at
-.IR mount (8)
+.BR mount (8)
time if necessary, so
-.I fsck.xfs
+.B fsck.xfs
simply exits with a zero exit status.
.PP
If you wish to check the consistency of an XFS filesystem,
or repair a damaged or corrupt XFS filesystem,
see
-.IR xfs_check (8)
+.BR xfs_check (8)
and
-.IR xfs_repair (8).
+.BR xfs_repair (8).
.
.SH FILES
.IR /etc/fstab .
.SH SEE ALSO
-fsck(8),
-fstab(5),
-xfs(5),
-xfs_check(8),
-xfs_repair(8).
+.BR fsck (8),
+.BR fstab (5),
+.BR xfs (5),
+.BR xfs_check (8),
+.BR xfs_repair (8).
.SH NAME
mkfs.xfs \- construct an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3mkfs.xfs\f1 [ \f3\-b\f1 subopt=value ] [ \f3\-d\f1 subopt[=value] ]
- [ \f3\-i\f1 subopt=value ] [ \f3\-l\f1 subopt[=value] ] [ \f3\-f\f1 ]
- [ \f3\-n\f1 subopt[=value] ] [ \f3\-p\f1 protofile ] [ \f3\-q\f1 ]
- [ \f3\-r\f1 subopt[=value] ] [ \f3\-s\f1 subopt[=value] ]
- [ \f3\-N\f1 ] [ \f3\-L\f1 label ] device
-.fi
+.B mkfs.xfs
+[
+.B \-b
+.I block_size
+] [
+.B \-d
+.I data_section_options
+] [
+.B \-f
+] [
+.B \-i
+.I inode_options
+] [
+.B \-l
+.I log_section_options
+] [
+.B \-n
+.I naming_options
+] [
+.B \-p
+.I protofile
+] [
+.B \-q
+] [
+.B \-r
+.I realtime_section_options
+] [
+.B \-s
+.I sector_size
+] [
+.B \-L
+.I label
+] [
+.B \-N
+]
+.I device
.SH DESCRIPTION
-.I mkfs.xfs
+.B mkfs.xfs
constructs an XFS filesystem by writing on a special
file using the values found in the arguments of the command line.
-It is invoked automatically by \f2mkfs\f1(8) when \f2mkfs\f1 is
-given the \f3\-t xfs\f1 option.
+It is invoked automatically by
+.BR mkfs (8)
+when it is given the
+.B \-t xfs
+option.
.PP
In its simplest (and most commonly used form), the size of the
filesystem is determined from the disk driver. As an example, to make
a filesystem with an internal log on the first partition on the first
SCSI disk, use:
-.PP
-.nf
- mkfs.xfs /dev/sda1
-.fi
+.IP
+.B mkfs.xfs /dev/sda1
.PP
The metadata log can be placed on another device to reduce the number
of disk seeks. To create a filesystem on the first partition on the
first SCSI disk with a 10000 block log located on the first partition
on the second SCSI disk, use:
-.PP
-.nf
- mkfs.xfs \-l logdev=/dev/sdb1,size=10000b /dev/sda1
-.fi
+.RS
+.HP
+.B mkfs.xfs\ \-l\ logdev=/dev/sdb1,size=10000b /dev/sda1
+.RE
.PP
Each of the
-.I subopt=value
+.I option
elements in the argument list above can be given as multiple comma-separated
-.I subopt=value
suboptions if multiple suboptions apply to the same option.
Equivalently, each main option can be given multiple times with
different suboptions.
.B \-l internal \-l size=10000b
are equivalent.
.PP
-In the descriptions below, sizes are given in sectors, bytes, blocks,
-kilobytes, megabytes, or gigabytes.
+In the descriptions below, sizes are given in sectors, bytes, blocks,
+kilobytes, megabytes, gigabytes, etc.
Sizes are treated as hexadecimal if prefixed by 0x or 0X,
octal if prefixed by 0, or decimal otherwise.
-If suffixed with \f3s\f1 then the size is converted by multiplying it
-by the filesystems sector size (defaults to 512, see \f3\-s\f1 option below).
-If suffixed with \f3b\f1 then the size is converted by multiplying it
-by the filesystems block size (defaults to 4K, see \f3\-b\f1 option below).
-If suffixed with \f3k\f1 then the size is converted by multiplying it by 1024.
-If suffixed with \f3m\f1 then the size is converted by multiplying it by
-one megabyte (1024 * 1024 bytes).
-If suffixed with \f3g\f1 then the size is converted by multiplying it by
-one gigabyte (1024 * 1024 * 1024 bytes).
-If suffixed with \f3t\f1 then the size is converted by multiplying it by
-one terabyte (1024 * 1024 * 1024 * 1024 bytes).
-If suffixed with \f3p\f1 then the size is converted by multiplying it by
-one petabyte (1024 * 1024 * 1024 * 1024 * 1024 bytes).
-If suffixed with \f3e\f1 then the size is converted by multiplying it by
-one exabyte (1024 * 1024 * 1024 * 1024 * 1024 * 1024 bytes).
+The following lists possible multiplication suffixes:
+.RS
+.PD 0
+.HP
+.BR s "\ \-\ multiply by sector size (default = 512, see " \-s
+option below).
+.HP
+.BR b "\ \-\ multiply by filesystem block size (default = 4K, see " \-b
+option below).
+.HP
+.BR k "\ \-\ multiply by one kilobyte (1,024 bytes)."
+.HP
+.BR m "\ \-\ multiply by one megabyte (1,048,576 bytes)."
+.HP
+.BR g "\ \-\ multiply by one gigabyte (1,073,741,824 bytes)."
+.HP
+.BR t "\ \-\ multiply by one terabyte (1,099,511,627,776 bytes)."
+.HP
+.BR p "\ \-\ multiply by one petabyte (1,024 terabytes)."
+.HP
+.BR e "\ \-\ multiply by one exabyte (1,048,576 terabytes)."
+.PD
+.SH OPTIONS
.TP
-.B \-b
-Block size options.
-.IP
+.BI \-b " block_size_options"
This option specifies the fundamental block size of the filesystem.
-The valid suboptions are:
+The valid
+.I block_size_options
+are:
.BI log= value
-and
-\f3size=\f1\f2value\f1;
-only one can be supplied.
+or
+.BI size= value
+and only one can be supplied.
The block size is specified either as a base two logarithm value with
.BR log= ,
or in bytes with
maximum is 65536 (64 KiB).
XFS on Linux currently only supports pagesize or smaller blocks.
.TP
-.B \-d
-Data section options.
-.IP
+.BI \-d " data_section_options"
These options specify the location, size, and other parameters of the
-data section of the filesystem.
-The valid suboptions are:
-\f3agcount=\f1\f2value\f1,
-\f3agsize=\f1\f2value\f1,
-\f3file\f1[\f3=\f1\f2value\f1],
-\f3name=\f1\f2value\f1,
-\f3size=\f1\f2value\f1,
-\f3sunit=\f1\f2value\f1,
-\f3swidth=\f1\f2value\f1,
-\f3su=\f1\f2value\f1,
-\f3sw=\f1\f2value\f1,
-and
-\f3unwritten\f1[\f3=\f1\f2value\f1].
-.IP
-The
-.B agcount
-suboption is used to specify the number of allocation groups.
-The data section of the filesystem is divided into allocation groups
-to improve the performance of XFS.
-More allocation groups imply that more parallelism can be achieved
-when allocating blocks and inodes.
-The minimum allocation group size is 16 MiB;
-the maximum size is just under 1 TiB.
+data section of the filesystem. The valid
+.I data_section_options
+are:
+.RS 1.2i
+.TP
+.BI agcount= value
+This is used to specify the number of allocation groups. The data section
+of the filesystem is divided into allocation groups to improve the
+performance of XFS. More allocation groups imply that more parallelism
+can be achieved when allocating blocks and inodes. The minimum
+allocation group size is 16 MiB; the maximum size is just under 1 TiB.
The data section of the filesystem is divided into
-.I agcount
+.I value
allocation groups (default value is scaled automatically based
on the underlying device size).
-Setting
-.I agcount
-to a very large number should be avoided, since this causes an unreasonable
-amount of CPU time to be used when the filesystem is close to full.
-.IP
-The
-.B agsize
-suboption is an alternative to using
-.B agcount.
-The argument provided to
-.B agsize
+.TP
+.BI agsize= value
+This is an alternative to using the
+.B agcount
+suboption. The
+.I value
is the desired size of the allocation group expressed in bytes
-(usually using the \f3m\f1 or \f3g\f1 suffixes).
+(usually using the
+.BR m " or " g
+suffixes).
This value must be a multiple of the filesystem block size, and
must be at least 16MiB, and no more than 1TiB, and may
be automatically adjusted to properly align with the stripe geometry.
The
.B agcount
-suboption and the
+and
.B agsize
-suboption are mutually exclusive.
-.IP
-The
-.B name
-suboption can be used to specify the name of the special file containing
-the filesystem.
-In this case, the log section must be specified as
+suboptions are mutually exclusive.
+.TP
+.BI name= value
+This can be used to specify the name of the special file containing
+the filesystem. In this case, the log section must be specified as
.B internal
(with a size, see the
.B \-l
option below) and there can be no real-time section.
-.IP
-The
-.B file
-suboption is used to specify that the file given by the
+.TP
+.BI file[= value ]
+This is used to specify that the file given by the
.B name
-suboption is a regular file.
-The suboption value is either 0 or 1,
-with 1 signifying that the file is regular.
-This suboption is used only to make a filesystem image.
-If the value is omitted then 1 is assumed.
-.IP
-The
-.B size
-suboption is used to specify the size of the data section.
-This suboption is required if
+suboption is a regular file. The
+.I value
+is either 0 or 1, with 1 signifying that the file is regular. This
+suboption is used only to make a filesystem image. If the
+.I value
+is omitted then 1 is assumed.
+.TP
+.BI size= value
+This is used to specify the size of the data section. This suboption
+is required if
.B \-d file[=1]
-is given.
-Otherwise, it is only needed if the filesystem should occupy
+is given. Otherwise, it is only needed if the filesystem should occupy
less space than the size of the special file.
-.IP
-The
-.B sunit
-suboption is used to specify the stripe unit for a RAID device or a
-logical volume.
-The suboption value has to be specified in 512-byte block units.
-Use the
-.B su
-suboption to specify the stripe unit size in bytes.
-This suboption ensures that data allocations will be stripe unit aligned
-when the current end of file is being extended and the file size is larger
-than 512KiB.
-Also inode allocations and the internal log will be stripe unit aligned.
-.IP
-The
+.TP
+.BI sunit= value
+This is used to specify the stripe unit for a RAID device or a
+logical volume. The
+.I value
+has to be specified in 512-byte block units. Use the
.B su
-suboption is an alternative to using
+suboption to specify the stripe unit size in bytes. This suboption
+ensures that data allocations will be stripe unit aligned when the
+current end of file is being extended and the file size is larger
+than 512KiB. Also inode allocations and the internal log will be
+stripe unit aligned.
+.TP
+.BI su= value
+This is an alternative to using
.B sunit.
The
.B su
suboption is used to specify the stripe unit for a RAID device or a
-striped logical volume.
-The suboption value has to be specified in bytes,
-(usually using the \f3m\f1 or \f3g\f1 suffixes).
-This value must be a multiple of the filesystem block size.
-.IP
-The
-.B swidth
-suboption is used to specify the stripe width for a RAID device or a
-striped logical volume.
-The suboption value has to be specified in 512-byte block units.
-Use the
+striped logical volume. The
+.I value
+has to be specified in bytes, (usually using the
+.BR m " or " g
+suffixes). This
+.I value
+must be a multiple of the filesystem block size.
+.TP
+.BI swidth= value
+This is used to specify the stripe width for a RAID device or a
+striped logical volume. The
+.I value
+has to be specified in 512-byte block units. Use the
.B sw
suboption to specify the stripe width size in bytes.
This suboption is required if
.B \-d sunit
-has been specified and it has to be a multiple of the
-.B \-d sunit
+has been specified and it has to be a multiple of the
+.B \-d sunit
suboption.
-.IP
-The
-.B sw
+.TP
+.BI sw= value
suboption is an alternative to using
.B swidth.
The
.B sw
suboption is used to specify the stripe width for a RAID device or
-striped logical volume.
-The suboption value is expressed as a multiplier of the stripe unit,
+striped logical volume. The
+.I value
+is expressed as a multiplier of the stripe unit,
usually the same as the number of stripe members in the logical
volume configuration, or data disks in a RAID device.
.IP
When a filesystem is created on a logical volume device,
-.I mkfs.xfs
-will automatically query the logical volume for appropriate
+.B mkfs.xfs
+will automatically query the logical volume for appropriate
.B sunit
and
.B swidth
values.
-.IP
-The
-.B unwritten
-suboption is used to specify whether unwritten extents are flagged as such,
+.TP
+.BI unwritten[= value ]
+This is used to specify whether unwritten extents are flagged as such,
or not.
-The suboption value is either 0 or 1, with 1 signifying that unwritten
+The
+.I value
+is either 0 or 1, with 1 signifying that unwritten
extent flagging should occur.
If the suboption is omitted, unwritten extent flagging is enabled.
If unwritten extents are flagged, filesystem write performance
will be negatively affected for preallocated file extents, since
-extra filesystem transactions are required to convert extent flags
+extra filesystem transactions are required to convert extent flags
for the range of the file written.
This suboption should be disabled if the filesystem
needs to be used on operating system versions which do not support the
flagging capability.
+.RE
.TP
.B \-f
Force overwrite when an existing filesystem is detected on the device.
-By default,
-.I mkfs.xfs
+By default,
+.B mkfs.xfs
will not write to the device if it suspects that there is a filesystem
or partition table on the device already.
.TP
-.B \-i
-Inode options.
-.IP
+.BI \-i " inode_options"
This option specifies the inode size of the filesystem, and other
inode allocation parameters.
The XFS inode contains a fixed-size part and a variable-size part.
and the root of a tree describing the location of extents for the file,
for files with a large number of extents.
.IP
-The valid suboptions for specifying inode size are:
-\f3log=\f1\f2value\f1,
-\f3perblock=\f1\f2value\f1,
-and
-\f3size=\f1\f2value\f1;
-only one can be supplied.
-The inode size is specified either as a base two logarithm value with
-.BR log= ,
+The valid
+.I inode_options
+are:
+.RS 1.2i
+.TP
+.BI size= value " | log=" value " | perblock=" value
+The inode size is specified either as a
+.I value
in bytes with
.BR size= ,
+a base two logarithm
+.I value
+with
+.BR log= ,
or as the number fitting in a filesystem block with
.BR perblock= .
-The mininum (and default) value is 256 bytes.
-The maximum value is 2048 (2 KiB) subject to the restriction that
+The mininum (and default)
+.I value
+is 256 bytes.
+The maximum
+.I value
+is 2048 (2 KiB) subject to the restriction that
the inode size cannot exceed one half of the filesystem block size.
.IP
XFS uses 64-bit inode numbers internally; however, the number of
practice, filesystem size and inode size are the predominant factors.
The Linux kernel (on 32 bit hardware platforms) and most applications
cannot currently handle inode numbers greater than 32 significant bits,
-so if no inode size is given on the command line,
-.I mkfs.xfs
+so if no inode size is given on the command line,
+.B mkfs.xfs
will attempt to choose a size
such that inode numbers will be < 32 bits. If an inode size
is specified, or if a filesystem is sufficently large,
-.I mkfs.xfs
+.B mkfs.xfs
will warn if this will create inode numbers > 32 significant
bits.
-.IP
-The option \f3maxpct=\f1\f2value\f1 specifies the maximum percentage
-of space in the filesystem that can be allocated to inodes.
-The default value is 25%.
-Setting the value to 0 means that
-essentially all of the filesystem can become inode blocks.
-.IP
-The option
+.TP
+.BI maxpct= value
+This specifies the maximum percentage of space in the filesystem that
+can be allocated to inodes. The default
+.I value
+is 25%. Setting the
+.I value
+to 0 means that essentially all of the filesystem can
+become inode blocks.
+.TP
.BI align[= value ]
-is used to specify that inode allocation is or is not aligned.
-The value is either 0 or 1,
-with 1 signifying that inodes are allocated aligned.
-If the value is omitted, 1 is assumed.
-The default is that inodes are aligned.
+This is used to specify that inode allocation is or is not aligned. The
+.I value
+is either 0 or 1, with 1 signifying that inodes are allocated aligned.
+If the
+.I value
+is omitted, 1 is assumed. The default is that inodes are aligned.
Aligned inode access is normally more efficient than unaligned access;
alignment must be established at the time the filesystem is created,
since inodes are allocated at that time.
filesystem needs to be mountable by a version of IRIX
that does not have the inode alignment feature
(any release of IRIX before 6.2, and IRIX 6.2 without XFS patches).
-.IP
-The option
+.TP
.BI attr[= value ]
-is used to specify the version of extended attribute inline allocation
+This is used to specify the version of extended attribute inline allocation
policy to be used.
By default, this is zero. Once extended attributes are used for the
first time, the version will be set to either one or two.
The current version (two) uses a more efficient algorithm for managing
the available inline inode space than version one does, however, for
-backward compatibility reasons (and in the absence of the \f3attr\f1=\f22\f1
-mkfs option, or the \f2attr2\f1 mount option), version one will be selected
+backward compatibility reasons (and in the absence of the
+.B attr=2
+mkfs option, or the
+.B attr2
+mount option), version one will be selected
by default when attributes are first used on a filesystem.
+.RE
.TP
-.B \-l
-Log section options.
-.IP
+.BI \-l " log_section_options"
These options specify the location, size, and other parameters of the
-log section of the filesystem.
-The valid suboptions are:
-.BI internal[= value ],
-\f3logdev=\f1\f2device\f1,
-\f3size=\f1\f2value\f1,
-\f3version=\f1\f2[1|2]\f1,
-\f3sunit=\f1\f2value\f1,
-\f3su=\f1\f2value\f1 and
-\f3lazy-count=\f1\f2[0|1]\f1.
-.IP
-The
-.B internal
-suboption is used to specify that the log section is a piece of
-the data section instead of being another device or logical volume.
-The suboption value is either 0 or 1,
-with 1 signifying that the log is internal.
-If the value is omitted, 1 is assumed.
-.IP
-The
-.B logdev
-suboption is used to specify that the log section should reside on a
-device separate from the data section. The suboption value is the
-name of a block device. The
+log section of the filesystem. The valid
+.I log_section_options
+are:
+.RS 1.2i
+.TP
+.BI internal[= value ]
+This is used to specify that the log section is a piece of the data
+section instead of being another device or logical volume. The
+.I value
+is either 0 or 1, with 1 signifying that the log is internal. If the
+.I value
+is omitted, 1 is assumed.
+.TP
+.BI logdev= device
+This is used to specify that the log section should reside on the
+.I device
+separate from the data section. The
.B internal=1
and
.B logdev
options are mutually exclusive.
+.TP
+.BI size= value
+This is used to specify the size of the log section.
.IP
-The
-.B size
-suboption is used to specify the size of the log section.
-.IP
-If the log is contained within the data section and
+If the log is contained within the data section and
.B size
isn't specified,
-.I mkfs.xfs
+.B mkfs.xfs
will try to select a suitable log size depending
on the size of the filesystem. The actual logsize depends on the
filesystem block size and the directory block size.
Otherwise, the
.B size
suboption is only needed if the log section of the filesystem
-should occupy less space than the size of the special file.
-The size is specified in bytes or blocks, with a \f3b\f1 suffix
-meaning multiplication by the filesystem block size, as described above.
-The overriding minimum value for size is 512 blocks.
+should occupy less space than the size of the special file. The
+.I value
+is specified in bytes or blocks, with a
+.B b
+suffix meaning multiplication by the filesystem block size, as
+described above. The overriding minimum value for size is 512 blocks.
With some combinations of filesystem block size, inode size,
and directory block size, the minimum log size is larger than 512 blocks.
-.IP
-Using the
-.B version
-suboption to specify a version 2 log enables the
+.TP
+.BI version= value
+This specifies the version of the log. The
+.I value
+is either 1 or 2. Specifying
+.B version=2
+enables the
.B sunit
suboption, and allows the logbsize to be increased beyond 32K.
Version 2 logs are automatically selected if a log stripe unit
-is specified. See \f3sunit\f1 and \f3su\f1 suboptions, below.
-.IP
-The
-.B sunit
-suboption specifies the alignment to be used for log writes.
-The suboption value has to be specified in 512-byte block units.
-Use the
+is specified. See
+.BR sunit " and " su
+suboptions, below.
+.TP
+.BI sunit= value
+This specifies the alignment to be used for log writes. The
+.I value
+has to be specified in 512-byte block units. Use the
.B su
suboption to specify the log stripe unit size in bytes.
Log writes will be aligned on this boundary,
and rounded up to this boundary.
This gives major improvements in performance on some configurations
-such as software raid5 when the sunit is specified as the filesystem
-block size.
+such as software RAID5 when the
+.B sunit
+is specified as the filesystem block size.
The equivalent byte value must be a multiple of the filesystem block
-size.
-Version 2 logs are automatically selected if the log \f3su\f1
+size. Version 2 logs are automatically selected if the log
+.B sunit
suboption is specified.
.IP
The
.B su
suboption is an alternative to using
.B sunit.
-The
+.TP
+.BI su= value
+This is used to specify the log stripe. The
+.I value
+has to be specified in bytes, (usually using the
+.BR s " or " b
+suffixes). This value must be a multiple of the filesystem block size.
+Version 2 logs are automatically selected if the log
.B su
-suboption is used to specify the log stripe.
-The suboption value has to be specified in bytes,
-(usually using the \f3s\f1 or \f3b\f1 suffixes).
-This value must be a multiple of the filesystem block size.
-Version 2 logs are automatically selected if the log \f3su\f1
suboption is specified.
-.IP
-The
-.B lazy-count
-suboption changes the method of logging various persistent counters
+.TP
+.BI lazy-count= value
+This changes the method of logging various persistent counters
in the superblock. Under metadata intensive workloads, these
-counters are updated and logged frequently enough that the
-superblock updates become a serialisation point in the filesystem.
+counters are updated and logged frequently enough that the superblock
+updates become a serialisation point in the filesystem. The
+.I value
+can be either 0 or 1.
.IP
With
.BR lazy-count=1 ,
other parts of the filesystem to be able to maintain the persistent
counter values without needed to keep them in the superblock.
This gives significant improvements in performance on some configurations.
-The default value is 0 (off) so you must specify
+The default
+.I value
+is 0 (off) so you must specify
.B lazy-count=1
if you want to make use of this feature.
+.RE
.TP
-.B \-n
-Naming options.
-.IP
+.BI \-n " naming_options"
These options specify the version and size parameters for the naming
-(directory) area of the filesystem.
-The valid suboptions are:
-\f3log=\f1\f2value\f1,
-\f3size=\f1\f2value\f1,
-and
-\f3version=\f1\f2value\f1.
-The naming (directory) version is 1 or 2,
-defaulting to 2 if unspecified.
+(directory) area of the filesystem. The valid
+.I naming_options
+are:
+.RS 1.2i
+.TP
+.BI size= value " | log=" value
+The block size is specified either as a
+.I value
+in bytes with
+.BR size= ,
+or as a base two logarithm
+.I value
+.RB "with " log= .
+The default size
+.I value
+for version 2 directories is 4096 bytes (4 KiB),
+unless the filesystem block size is larger than 4096,
+in which case the default
+.I value
+is the filesystem block size.
+For version 1 directories the block size is the same as the
+filesystem block size.
+.TP
+.BI version= value
+The naming (directory) version
+.I value
+can be either 1 or 2, defaulting to 2 if unspecified.
With version 2 directories,
the directory block size can be any power of 2 size
from the filesystem block size up to 65536.
-The block size is specified either as a base two logarithm value with
-.BR log= ,
-or in bytes with
-.BR size= .
-The default size value for version 2 directories is 4096 bytes (4 KiB),
-unless the filesystem block size is larger than 4096,
-in which case the default value is the filesystem block size.
-For version 1 directories the block size is the same as the
-filesystem block size.
+.RE
.TP
-\f3\-p\f1 \f2protofile\f1
+.BI \-p " protofile"
If the optional
-.B \-p
-.I protofile
+.BI \-p " protofile"
argument is given,
-.I mkfs.xfs
+.B mkfs.xfs
uses
.I protofile
-as a prototype file
-and takes its directions from that file.
-The blocks and inodes
-specifiers in the
+as a prototype file and takes its directions from that file.
+The blocks and inodes specifiers in the
.I protofile
are provided for backwards compatibility, but are otherwise unused.
-The syntax of the protofile is defined by a number of tokens separated by spaces
-or newlines. Note that the line numbers are not part of the syntax but
-are meant to help you in the
-following discussion of the file
+The syntax of the protofile is defined by a number of tokens separated
+by spaces or newlines. Note that the line numbers are not part of the
+syntax but are meant to help you in the following discussion of the file
contents.
.nf
.sp .8v
appear at this point for the proto file to be correctly parsed,
but their values are immaterial since they are ignored.
.IP
-The lines 3 through 11 specify the files and directories you want to
+The lines 3 through 11 specify the files and directories you want to
include in this filesystem. Line 3 defines the
root directory. Other directories and
files that you want in the filesystem
lines 8 through 10. Line 11 contains
symbolic link syntax.
.IP
-Notice the dollar sign (
-.B $
-) syntax on line 7. This syntax directs the
-.I mkfs.xfs
+Notice the dollar sign
+.RB ( $ )
+syntax on line 7. This syntax directs the
+.B mkfs.xfs
command to terminate the branch of the filesystem it
is currently on and then continue
-from the directory specified by
+from the directory specified by
the next line,in this case line 8
It must be the last character
on a line.
A 6-character string defines the mode for
a file. The first character of this string
defines the file type. The character range
-for this first character is
+for this first character is
.B \-bcdpl.
A file may be a regular file, a block special file,
a character special file, directory files, named
links.
The second character of the mode string is
used to specify setuserID mode, in which case
-it is
+it is
.BR u .
-If setuserID mode is not specified, the second character is
+If setuserID mode is not specified, the second character is
.BR \- .
The third character of the mode string is
used to specify the setgroupID mode, in which
-case it is
+case it is
.BR g .
-If setgroupID mode is not specified, the second character is
+If setgroupID mode is not specified, the second character is
.BR \- .
The remaining characters of the mode string are
a three digit octal number. This octal number
defines the owner, group, and other read, write,
and execute permissions for the file, respectively.
Form more information on file permissions, see the
-.IR chmod(1)
+.BR chmod (1)
command.
.IP
Following the mode character string are two
When a file is a symbolic link, the next token
specifies the contents of the link.
-When the file is a directory, the
-.I mkfs.xfs
-command creates the entries
+When the file is a directory, the
+.B mkfs.xfs
+command creates the entries
.B dot
-(.) and
+(.) and
.B dot-dot
(..) and then reads the list of names and file specifications
in a recursive manner for all of the entries
) token.
.TP
.B \-q
-Quiet option.
-.IP
-Normally
-.I mkfs.xfs
+Quiet option. Normally
+.B mkfs.xfs
prints the parameters of the filesystem
to be constructed;
the
.B \-q
flag suppresses this.
.TP
-.B \-r
-Real-time section options.
-.IP
+.BI \-r " realtime_section_options"
These options specify the location, size, and other parameters of the
-real-time section of the filesystem.
-The valid suboptions are:
-\f3rtdev=\f1\f2device\f1,
-\f3extsize=\f1\f2value\f1,
-and
-\f3size=\f1\f2value\f1.
-.IP
-The
-.B rtdev
-suboption is used to specify the device which should contain
-the real-time section of the filesystem.
+real-time section of the filesystem. The valid
+.I realtime_section_options
+are:
+.RS 1.2i
+.TP
+.BI rtdev= device
+This is used to specify the
+.I device
+which should contain the real-time section of the filesystem.
The suboption value is the name of a block device.
-.IP
-The
-.B extsize
-suboption is used to specify the size of the blocks in the real-time
-section of the filesystem.
-This size must be a multiple of the filesystem block size.
-The minimum allowed value is the filesystem block size
-or 4 KiB (whichever is larger);
-the default value is the stripe width for striped volumes or 64 KiB for
-non-striped volumes;
-the maximum allowed value is 1 GiB.
-The real-time extent size should be carefully chosen to match the
-parameters of the physical media used.
-.IP
-The
-.B size
-suboption is used to specify the size of the real-time section.
+.TP
+.BI extsize= value
+This is used to specify the size of the blocks in the real-time
+section of the filesystem. This
+.I value
+must be a multiple of the filesystem block size. The minimum allowed
+size is the filesystem block size or 4 KiB (whichever is larger); the
+default size is the stripe width for striped volumes or 64 KiB for
+non-striped volumes; the maximum allowed size is 1 GiB. The real-time
+extent size should be carefully chosen to match the parameters of the
+physical media used.
+.TP
+.BI size= value
+This is used to specify the size of the real-time section.
This suboption is only needed if the real-time section of the
filesystem should occupy less space than the size of the partition
or logical volume containing the section.
+.RE
.TP
-.B \-s
-Sector size options.
-.IP
+.BI \-s " sector_size"
This option specifies the fundamental sector size of the filesystem.
-The valid suboptions are:
-.BI log= value
-and
-\f3size=\f1\f2value\f1;
-only one can be supplied.
-The sector size is specified either as a base two logarithm value with
-.BR log= ,
-or in bytes with
-.BR size= .
-The default value is 512 bytes.
-The minimum value for sector size is 512; the maximum is 32768 (32 KiB).
-The sector size must be a power of 2 size and cannot be made larger
-than the filesystem block size.
+The
+.I sector_size
+is specified either as a value in bytes with
+.BI size= value
+or as a base two logarithm value with
+.BI log= value.
+The default
+.I sector_size
+is 512 bytes. The minimum value for sector size is
+512; the maximum is 32768 (32 KiB). The
+.I sector_size
+must be a power of 2 size and cannot be made larger than the
+filesystem block size.
.TP
-\f3\-L\f1 \f2label\f1
-Set the filesystem label.
+.BI \-L " label"
+Set the filesystem
+.IR label .
XFS filesystem labels can be at most 12 characters long; if
.I label
is longer than 12 characters,
-.I mkfs.xfs
+.B mkfs.xfs
will not proceed with creating the filesystem. Refer to the
-.IR mount (8)
-and
-.IR xfs_admin (8)
+.BR mount "(8) and " xfs_admin (8)
manual entries for additional information.
.TP
.B \-N
Causes the file system parameters to be printed out without really
creating the file system.
.SH SEE ALSO
-xfs(5),
-mkfs(8),
-mount(8),
-xfs_info(8),
-xfs_admin(8).
+.BR xfs (5),
+.BR mkfs (8),
+.BR mount (8),
+.BR xfs_info (8),
+.BR xfs_admin (8).
.SH BUGS
With a prototype file, it is not possible to specify hard links.
.SH NAME
xfs_admin \- change parameters of an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3xfs_admin\f1 [ \f3-elu\f1] [ \f3\-L \f2label\f1 ] [ \f3\-U \f2uuid\f1 ] device
-\f3xfs_admin \-f\f1 [ \f3-elu\f1] [ \f3\-L \f2label\f1 ] [ \f3\-U \f2uuid\f1 ] filename
-.fi
+.B xfs_admin
+[
+.B \-eflu
+] [
+.B \-L
+.I label
+] [
+.B \-U
+.I uuid
+]
+.I device
.SH DESCRIPTION
-.I xfs_admin
+.B xfs_admin
uses the
-.IR xfs_db (8)
+.BR xfs_db (8)
command to modify various parameters of a filesystem.
.PP
Devices that are mounted cannot be modified.
Administrators must unmount filesystems before
-.I xfs_admin
-or
-.I xfs_db
+.BR xfs_admin " or " xfs_db (8)
can convert parameters.
A number of parameters of a mounted filesystem can be examined
and modified using the
-.IR xfs_growfs (8)
+.BR xfs_growfs (8)
command.
.SH OPTIONS
-.TP 5
-\f3\-e\f1
+.TP
+.B \-e
Enables unwritten extent support on a filesystem that does not
already have this enabled.
-.TP 5
-\f3\-f\f1
+.TP
+.B \-f
Specifies that the filesystem image to be processed is stored in a
-regular file (see the \f2mkfs.xfs\f1 \f3\-d\f1 \f2file\f1 option).
-.TP 5
-\f3\-j\f1
+regular file at
+.I device
+(see the
+.B mkfs.xfs \-d
+.I file
+option).
+.TP
+.B \-j
Enables version 2 log format (journal format supporting larger
log buffers).
-.TP 5
-\f3\-l\f1
+.TP
+.B \-l
Print the current filesystem label.
-.TP 5
-\f3\-u\f1
+.TP
+.B \-u
Print the current filesystem UUID (Universally Unique IDentifier).
-.TP 5
-\f3\-L\f1 \f2label\f1
-Set the filesystem label.
+.TP
+.BI \-L " label"
+Set the filesystem label to
+.IR label .
XFS filesystem labels can be at most 12 characters long; if
.I label
is longer than 12 characters,
-.I xfs_admin
+.B xfs_admin
will truncate it and print a warning message.
-The filesystem label can be cleared using the special ``\c
-.BR \-\- ''
-value for
+The filesystem label can be cleared using the special "\c
+.B \-\-\c
+" value for
.IR label .
-.TP 5
-\f3\-U\f1 \f2UUID\f1
-Set the UUID of the filesystem.
+.TP
+.BI \-U " uuid"
+Set the UUID of the filesystem to
+.IR uuid .
A sample UUID looks like this: "c1b9d5a2-f162-11cf-9ece-0020afc76f16".
-The uuid may also be
-.IR nil ,
+The
+.I uuid
+may also be
+.BR nil ,
which will set the filesystem UUID to the null UUID.
-The uuid may also be
-.IR generate ,
+The
+.I uuid
+may also be
+.BR generate ,
which will generate a new UUID for the filesystem.
.PP
The
-.IR mount (8)
+.BR mount (8)
manual entry describes how to mount a filesystem using its label or UUID,
rather than its block special device name.
.SH SEE ALSO
-mkfs.xfs(8),
-mount(8),
-xfs_db(8),
-xfs_growfs(8),
-xfs(5).
+.BR mkfs.xfs (8),
+.BR mount (8),
+.BR xfs_db (8),
+.BR xfs_growfs (8),
+.BR xfs (5).
.SH NAME
xfs_check \- check XFS filesystem consistency
.SH SYNOPSIS
-.nf
-\f3xfs_check\f1 [ \f3\-i\f1 ino ] ... [ \f3\-b\f1 bno ] ...
- [ \f3\-s\f1 ] [ \f3\-v\f1 ] [ \f3\-l\f1 logdev ] xfs_special
-.sp .8v
-\f3xfs_check\f1 \f3\-f\f1 [ \f3\-i\f1 ino ] ... [ \f3\-b\f1 bno ] ...
- [ \f3\-s\f1 ] [ \f3\-v\f1 ] [ \f3\-l\f1 logdev ] file
-.fi
+.B xfs_check
+[
+.B \-i
+.I ino
+] ... [
+.B \-b
+.I bno
+] ... [
+.B \-f
+] [
+.B \-s
+] [
+.B \-v
+] [
+.B \-l
+.I logdev
+]
+.I device
.SH DESCRIPTION
-.I xfs_check
+.B xfs_check
checks whether an XFS filesystem is consistent.
It is normally run only when there is reason to believe that the
filesystem has a consistency problem.
The filesystem to be checked is specified by the
-.I xfs_special
+.I device
argument, which should be the disk or volume device for the filesystem.
-Filesystems stored in files can also be checked, using the \f3\-f\f1 flag.
-The filesystem should normally be unmounted or read-only
+Filesystems stored in files can also be checked, using the
+.B \-f
+flag. The filesystem should normally be unmounted or read-only
during the execution of
-.IR xfs_check .
+.BR xfs_check .
Otherwise, spurious problems are reported.
-.PP
-The options to \f2xfs_check\f1 are:
-.TP 9
+.SH
+OPTIONS
+.TP
.B \-f
-Specifies that the special device is actually a file (see the
-\f2mkfs.xfs\f1 \f3\-d\f1 \f2file\f1 option).
-This might happen if an image copy
+Specifies that the filesystem image to be processed is stored in a
+regular file at
+.I device
+(see the
+.BR mkfs.xfs "(8) " \-d
+.I file
+option). This might happen if an image copy
of a filesystem has been made into an ordinary file.
.TP
-.B \-l
-Specifies the device special file where the filesystem's external
-log resides.
-Only for those filesystems which use an external log.
-See the
-\f2mkfs.xfs\f1 \f3\-l\f1 option, and refer to
-.IR xfs (5)
+.BI \-l " logdev"
+Specifies the device where the filesystem's external log resides.
+Only for those filesystems which use an external log. See the
+.BR mkfs.xfs "(8) " \-l
+option, and refer to
+.BR xfs (5)
for a detailed description of the XFS log.
.TP
.B \-s
Specifies that only serious errors should be reported.
Serious errors are those that make it impossible to find major data
-structures in the filesystem.
-This option can be used to cut down the
-amount of output when there is a serious problem, when the output might make it
-difficult to see what the real problem is.
+structures in the filesystem. This option can be used to cut down the
+amount of output when there is a serious problem, when the output
+might make it difficult to see what the real problem is.
.TP
.B \-v
Specifies verbose output; it is impossibly long for a
This option is intended for internal use only.
.TP
.BI \-i " ino"
-Specifies verbose behavior for a
-specific inode.
+Specifies verbose behavior for the specified inode
+.IR ino .
For instance, it can be used to locate all the blocks
associated with a given inode.
.TP
.BI \-b " bno"
-Specifies verbose behavior for a specific filesystem block.
+Specifies verbose behavior for the specific filesystem block at
+.IR bno .
For instance, it can be used to determine what a specific block
-is used for.
-The block number is a "file system block number".
+is used for. The block number is a "file system block number".
Conversion between disk addresses (i.e. addresses reported by
-.IR xfs_bmap )
+.BR xfs_bmap (8))
and file system blocks may be accomplished using
-.IR xfs_db 's
-.B convert
+.BR xfs_db "(8)'s " convert
command.
.PP
Any output that is produced when
-.I xfs_check
-is not run in verbose mode indicates
-that the filesystem has an inconsistency.
-The filesystem can be repaired using either
-.IR xfs_repair(8)
-to fix the filesystem in place,
-or by using
-.IR xfsdump (8)
+.B xfs_check
+is not run in verbose mode indicates that the filesystem has an
+inconsistency. The filesystem can be repaired using either
+.BR xfs_repair (8)
+to fix the filesystem in place, or by using
+.BR xfsdump (8)
and
-.IR mkfs.xfs (8)
-to dump the filesystem,
-make a new filesystem,
-then use
-.IR xfsrestore (8)
+.BR mkfs.xfs (8)
+to dump the filesystem, make a new filesystem, then use
+.BR xfsrestore (8)
to restore the data onto the new filesystem.
Note that xfsdump may fail on a corrupt filesystem.
However, if the filesystem is mountable, xfsdump can
If the filesystem is not mountable though, xfs_repair is
the only viable option.
.SH DIAGNOSTICS
-Under one circumstance,
-.I xfs_check
-unfortunately might dump core
-rather than produce useful output.
If the filesystem is completely corrupt, a core dump might
be produced instead of the message
-.nf
-.ft CW
- \f2xxx\f1\f7 is not a valid filesystem\f1
-.ft
-.fi
+.RS
+.I device
+.B is not a valid filesystem
+.RE
.PP
If the filesystem is very large (has many files) then
-.I xfs_check
-might run out of memory.
-In this case the message
-.nf
-.ft CW
- out of memory
-.ft
-.fi
+.B xfs_check
+might run out of memory. In this case the message
+.RS
+.B out of memory
+.RE
is printed.
.PP
The following is a description of the most likely problems and the associated
Most of the diagnostics produced are only meaningful with an understanding
of the structure of the filesystem.
.TP
-\f7agf_freeblks \f1\f2n\f1\f7, counted \f1\f2m\f1\f7 in ag \f1\f2a\f1
+.BI "agf_freeblks " n ", counted " m " in ag " a
The freeblocks count in the allocation group header for allocation group
.I a
doesn't match the number of blocks counted free.
.TP
-\f7agf_longest \f1\f2n\f1\f7, counted \f1\f2m\f1\f7 in ag \f1\f2a\f1
+.BI "agf_longest " n ", counted " m " in ag " a
The longest free extent in the allocation group header for allocation group
.I a
doesn't match the longest free extent found in the allocation group.
.TP
-\f7agi_count \f1\f2n\f1\f7, counted \f1\f2m\f1\f7 in ag \f1\f2a\f1
+.BI "agi_count " n ", counted " m " in ag " a
The allocated inode count in the allocation group header for allocation group
.I a
doesn't match the number of inodes counted in the allocation group.
.TP
-\f7agi_freecount \f1\f2n\f1\f7, counted \f1\f2m\f1\f7 in ag \f1\f2a\f1
+.BI "agi_freecount " n ", counted " m " in ag " a
The free inode count in the allocation group header for allocation group
.I a
doesn't match the number of inodes counted free in the allocation group.
.TP
-\f7block \f1\f2a/b\f1\f7 expected inum 0 got \f1\f2i\f1
+.BI "block " a/b " expected inum 0 got " i
The block number is specified as a pair
(allocation group number, block in the allocation group).
The block is used multiple times (shared), between multiple inodes.
This message usually follows a message of the next type.
.TP
-\f7block \f1\f2a/b\f1\f7 expected type unknown got \f1\f2y\f1
+.BI "block " a/b " expected type unknown got " y
The block is used multiple times (shared).
.TP
-\f7block \f1\f2a/b\f1\f7 type unknown not expected\f1
+.BI "block " a/b " type unknown not expected
The block is unaccounted for (not in the freelist and not in use).
.TP
-\f7link count mismatch for inode \f1\f2nnn\f1\f7 (name \f1\f2xxx\f1\f7), nlink \f1\f2m\f1\f7, counted \f1\f2n\f1
+.BI "link count mismatch for inode " nnn " (name " xxx "), nlink " m ", counted " n
The inode has a bad link count (number of references in directories).
.TP
-\f7rtblock \f1\f2b\f1\f7 expected inum 0 got \f1\f2i\f1
+.BI "rtblock " b " expected inum 0 got " i
The block is used multiple times (shared), between multiple inodes.
This message usually follows a message of the next type.
.TP
-\f7rtblock \f1\f2b\f1\f7 expected type unknown got \f1\f2y\f1
+.BI "rtblock " b " expected type unknown got " y
The real-time block is used multiple times (shared).
.TP
-\f7rtblock \f1\f2b\f1\f7 type unknown not expected\f1
+.BI "rtblock " b " type unknown not expected
The real-time block is unaccounted for (not in the freelist and not in use).
.TP
-\f7sb_fdblocks \f1\f2n\f1\f7, counted \f1\f2m\f1
+.BI "sb_fdblocks " n ", counted " m
The number of free data blocks recorded
in the superblock doesn't match the number counted free in the filesystem.
.TP
-\f7sb_frextents \f1\f2n\f1\f7, counted \f1\f2m\f1
+.BI "sb_frextents " n ", counted " m
The number of free real-time extents recorded
in the superblock doesn't match the number counted free in the filesystem.
.TP
-\f7sb_icount \f1\f2n\f1\f7, counted \f1\f2m\f1
+.BI "sb_icount " n ", counted " m
The number of allocated inodes recorded
in the superblock doesn't match the number allocated in the filesystem.
.TP
-\f7sb_ifree \f1\f2n\f1\f7, counted \f1\f2m\f1
+.BI "sb_ifree " n ", counted " m
The number of free inodes recorded
in the superblock doesn't match the number free in the filesystem.
.SH SEE ALSO
-mkfs.xfs(8),
-xfsdump(8),
-xfsrestore(8),
-xfs_ncheck(8),
-xfs_repair(8),
-xfs(5).
+.BR mkfs.xfs (8),
+.BR xfsdump (8),
+.BR xfsrestore (8),
+.BR xfs_ncheck (8),
+.BR xfs_repair (8),
+.BR xfs (5).
.SH NAME
xfs_copy \- copy the contents of an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3xfs_copy\f1 [ \f3\-bd\f1 ] [ \f3\-L\f1 log ] source target1 [ target2 target3 ... ]
-.fi
+.B xfs_copy
+[
+.B \-bd
+] [
+.B \-L
+.I log
+]
+.I source target1
+[
+.I target2
+\&... ]
.SH DESCRIPTION
-.I xfs_copy
-copies an XFS filesystem to one or more targets in parallel
-(see
-.IR xfs (5)).
-The
-first (source)
-argument must be the pathname of the device or file
-containing the XFS filesystem.
-The remaining arguments specify one or more target devices
-or file names.
-If the pathnames specify devices, a copy of the source
-XFS filesystem is created on each device.
-The target can also be the name of a regular file,
-in which case an image of the source XFS filesystem is
-created in that file.
-If the file does not exist,
-.I xfs_copy
-creates the file.
-The length of the resulting file is equal to the size
-of the source filesystem.
-However, if the file is created on an XFS filesystem,
-the file consumes roughly the amount of space actually
+.B xfs_copy
+copies an XFS filesystem to one or more targets in parallel (see
+.BR xfs (5)).
+The first
+.RI ( source )
+argument must be the pathname of the device or file containing the
+XFS filesystem. The remaining arguments specify one or more
+.I target
+devices or file names. If the pathnames specify devices, a
+copy of the source XFS filesystem is created on each device. The
+.I target
+can also be the name of a regular file, in which case an image of the
+source XFS filesystem is created in that file. If the file does not exist,
+.B xfs_copy
+creates the file. The length of the resulting file is equal to the size
+of the source filesystem. However, if the file is created on an XFS
+filesystem, the file consumes roughly the amount of space actually
used in the source filesystem by the filesystem and the XFS log.
The space saving is because
-.I xfs_copy
-seeks over free blocks instead of copying them
-and the XFS filesystem supports sparse files efficiently.
+.B xfs_copy
+seeks over free blocks instead of copying them and the XFS filesystem
+supports sparse files efficiently.
.PP
-.I xfs_copy
+.B xfs_copy
should only be used to copy unmounted filesystems, read-only mounted
-filesystems, or frozen filesystems (see xfs_freeze(8)).
-Otherwise, the generated filesystem(s) would be inconsistent
-or corrupt.
+filesystems, or frozen filesystems (see
+.BR xfs_freeze (8)).
+Otherwise, the generated filesystem(s) would be inconsistent or corrupt.
.PP
-.I xfs_copy
-does not alter the source filesystem in any way.
-Each new (target) filesystem is identical to the original
-filesystem except that new filesystems each have a new unique
-filesystem identifier (UUID).
-Therefore,
-if both the old and new filesystems will be used as
+.B xfs_copy
+does not alter the source filesystem in any way. Each new (target)
+filesystem is identical to the original filesystem except that new
+filesystems each have a new unique filesystem identifier (UUID).
+Therefore, if both the old and new filesystems will be used as
separate distinct filesystems,
-.I xfs_copy
+.B xfs_copy
or
-.IR xfsdump / xfsrestore
+.BR xfsdump (8)/ xfsrestore (8)
should be used to generate the new filesystem(s) instead of
-.IR dd (1)
+.BR dd (1)
or other programs that do block-by-block disk copying.
.PP
-The
-.B \-d
-(duplicate) option can be used if a true clone is
-desired.
-This should be done only if the new filesystem
-will be used as a replacement for the original
-filesystem (such as in the case of disk replacement).
-.PP
-.I xfs_copy
+.B xfs_copy
uses synchronous writes to ensure that write errors are
detected.
.PP
-The
-.B \-b
-(buffered) option can be used to ensure direct IO is not attempted
-to any of the target files.
-This is useful when the filesystem holding the target file does not
-support direct IO.
-.I xfs_copy
-also uses
-\f2pthreads\f1s
+.B xfs_copy
+uses
+.BR pthreads (7)
to perform simultaneous parallel writes.
-.I xfs_copy
+.B xfs_copy
creates one additional thread for each target to be written.
All threads die if
-.I xfs_copy
+.B xfs_copy
terminates or aborts.
-.PP
-.I xfs_copy
-does not copy XFS filesystems that have a real-time section
-or XFS filesystems with external logs.
-In both cases,
-.I xfs_copy
-aborts with an error message.
+.SH OPTIONS
+.TP
+.B \-d
+Create a duplicate (true clone) filesystem. This should be done only
+if the new filesystem will be used as a replacement for the original
+filesystem (such as in the case of disk replacement).
+.TP
+.B \-b
+The buffered option can be used to ensure direct IO is not attempted
+to any of the target files. This is useful when the filesystem holding
+the target file does not support direct IO.
+.TP
+.BI \-L " log"
+Specifies the location of the
+.I log
+if the default location of
+.I /var/tmp/xfs_copy.log.XXXXXX
+is not desired.
.SH DIAGNOSTICS
-.I xfs_copy
-reports errors to both stderr and
-in more detailed form to a generated
-log file whose name is of the form
+.B xfs_copy
+reports errors to both
+.B stderr
+and in more detailed form to a generated log file whose name is of the form
.I /var/tmp/xfs_copy.log.XXXXXX
or a log file specified by the
.B \-L
-option.
-If
-.I xfs_copy
-detects a write error on a target,
-the copy of that one target is aborted and an error
-message is issued to both stderr and the log file, but
-the rest of the copies continue.
-When
-.I xfs_copy
-terminates, all aborted targets are reported to both stderr and
-the log file.
+option. If
+.B xfs_copy
+detects a write error on a target, the copy of that one target is aborted
+and an error message is issued to both stderr and the log file, but
+the rest of the copies continue. When
+.B xfs_copy
+terminates, all aborted targets are reported to both
+.B stderr
+and the log file.
.PP
If all targets abort or if there is an error reading the source filesystem,
-.I xfs_copy
+.B xfs_copy
immediately aborts.
.PP
-.I xfs_copy
+.B xfs_copy
returns an exit code of 0 if all targets are successfully
copied and an exit code of 1 if any target fails.
.SH NOTES
-When moving filesystems from one disk to another,
-if the original filesystem is significantly smaller
-than the new filesystem, and will be made larger, we
-recommend that
-.I
-mkfs
-and
-.I xfsdump/xfsrestore
+When moving filesystems from one disk to another, if the original
+filesystem is significantly smaller than the new filesystem, and will
+be made larger, we recommend that
+.BR mkfs.xfs "(8) and " xfsdump (8)/ xfsrestore (8)
be used instead of using
-.I xfs_copy
+.B xfs_copy
and
-.I xfs_growfs.
+.BR xfs_growfs (8).
The filesystem layout resulting from using
-.I xfs_copy/xfs_growfs
+.BR xfs_copy / xfs_growfs
is almost always worse than the result of using
-.I mkfs/xfsdump/xfsrestore
-but in the case of small filesystems, the
-differences can have a significant performance
-impact.
-This is due to the way
-.I xfs_growfs
+.BR mkfs.xfs / xfsdump / xfsrestore
+but in the case of small filesystems, the differences can have a
+significant performance impact. This is due to the way
+.BR xfs_growfs (8)
works, and not due to any shortcoming in
-.I xfs_copy
+.B xfs_copy
itself.
+.SH CAVEATS
+.B xfs_copy
+does not copy XFS filesystems that have a real-time section
+or XFS filesystems with external logs. In both cases,
+.B xfs_copy
+aborts with an error message.
.SH SEE ALSO
-mkfs.xfs(8),
-xfsdump(8),
-xfsrestore(8),
-xfs_freeze(8),
-xfs_growfs(8),
-xfs(5).
+.BR mkfs.xfs (8),
+.BR xfsdump (8),
+.BR xfsrestore (8),
+.BR xfs_freeze (8),
+.BR xfs_growfs (8),
+.BR xfs (5).
.SH NAME
xfs_db \- debug an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3xfs_db\f1 [ \f3\-c\f1 cmd ] ... [ \f3\-p\f1 prog ] [ \f3\-r\f1 ] [ \f3\-x\f1 ] xfs_special
-.sp .8v
-\f3xfs_db\f1 \f3\-f\f1 [ \f3\-c\f1 cmd ] ... [ \f3\-p\f1 prog ] [ \f3\-f\f1 ] [ \f3\-r\f1 ] [ \f3\-x\f1 ] file
-.fi
+.B xfs_db
+[
+.B \-c
+.I cmd
+] ... [
+.BR \-i | r | x
+] [
+.B \-f
+] [
+.B \-l
+.I logdev
+] [
+.B \-p
+.I progname
+]
+.I device
+.br
+.B xfs_db \-V
.SH DESCRIPTION
-\f2xfs_db\f1 is used to examine an XFS filesystem.
-Under rare circumstances it can also be used to modify an XFS filesystem,
-but that task is normally left to \f2xfs_repair\f1(8) or to
-scripts such as \f2xfs_admin\f1 that run \f2xfs_db\f1.
+.B xfs_db
+is used to examine an XFS filesystem. Under rare circumstances it can also
+be used to modify an XFS filesystem, but that task is normally left to
+.BR xfs_repair (8)
+or to scripts such as
+.BR xfs_admin (8)
+that run
+.BR xfs_db .
.PP
-The options to \f2xfs_db\f1 are:
-.TP 10
-\f3\-c\f1 \f2cmd\f1
-\f2xfs_db\f1 commands may be run interactively (the default)
-or as arguments on the command line.
-Multiple \f3\-c\f1 arguments may be given.
-The commands are run in the sequence given, then the program exits.
-This is the mechanism used to implement \f2xfs_check\f1(8).
-.TP
-\f3\-f\f1
+.SH OPTIONS
+.TP
+.BI \-c " cmd"
+.B xfs_db
+commands may be run interactively (the default) or as arguments
+on the command line. Multiple
+.B \-c
+arguments may be given. The commands are run in the sequence given,
+then the program exits. This is the mechanism used to implement
+.BR xfs_check (8).
+.TP
+.B \-f
Specifies that the filesystem image to be processed is stored in a
-regular file
-(see the \f2mkfs.xfs\f1 \f3\-d\f1 \f2file\f1 option).
-This might happen if an image copy
-of a filesystem has been made into an ordinary file with \f2xfs_copy\f1(8).
+regular file at
+.I device
+(see the
+.BR mkfs.xfs "(8) " -d
+.I file
+option).
+This might happen if an image copy of a filesystem has been made into
+an ordinary file with
+.BR xfs_copy (8).
+.TP
+.B \-i
+Allows execution on a mounted filesystem, provided it is mounted read-only.
+Useful for shell scripts such as
+.BR xfs_check (8),
+which must only operate on filesystems in a guarenteed consistent state
+(either unmounted or mounted read-only). These semantics are slightly
+different to that of the
+.B -r
+option.
.TP
-.B \-l
-Specifies the device special file where the filesystems external
-log resides.
-Only for those filesystems which use an external log.
-See the
-\f2mkfs.xfs\f1 \f3\-l\f1 option, and refer to
-.IR xfs (5)
+.BI \-l " logdev"
+Specifies the device where the filesystems external log resides.
+Only for those filesystems which use an external log. See the
+.BR mkfs.xfs "(8) " \-l
+option, and refer to
+.BR xfs (5)
for a detailed description of the XFS log.
.TP
-\f3\-i\f1
-Allows execution on a mounted filesystem, provided it is mounted read-only.
-Useful for shell scripts such as \f2xfs_check\f1(8), which must only
-operate on filesystems in a guarenteed consistent state
-(either unmounted or mounted read-only).
-These semantics are slightly different to that of the \f3\-r\f1 option.
-.TP
-\f3\-p\f1 \f2prog\f1
-Set the program name for prompts and some error messages,
-the default value is \f2xfs_db\f1.
-.TP
-\f3\-r\f1
-Open \f2file\f1 or \f2xfs_special\f1 read-only.
-This option is required if \f2xfs_special\f1 is a mounted filesystem.
+.BI \-p " progname"
+Set the program name to
+.I progname
+for prompts and some error messages, the default value is
+.BR xfs_db .
+.TP
+.B -r
+Open
+.I device
+or
+.I filename
+read-only. This option is required if the filesystem is mounted.
It is only necessary to omit this flag if a command that changes data
-(\f3write\f1, \f3blocktrash\f1) is to be used.
+.RB ( write ", " blocktrash )
+is to be used.
.TP
-\f3\-x\f1
+.B \-x
Specifies expert mode.
-This enables the \f3write\f1 command.
+This enables the
+.B write
+and
+.B blocktrash
+commands.
+.TP
+.B \-V
+Prints out the current version number and exits.
.SH CONCEPTS
-\f2xfs_db\f1 commands can be broken up into two classes.
-Most commands are for the navigation and display of data structures in
-the filesystem.
+.B xfs_db
+commands can be broken up into two classes. Most commands are for
+the navigation and display of data structures in the filesystem.
Other commands are for scanning the filesystem in some way.
.PP
Commands which are used to navigate the filesystem structure take arguments
if the underlying field is an array.
The array indices can be specified as a range, two numbers separated by a dash.
.PP
-\f2xfs_db\f1 maintains a current address in the filesystem.
+.B xfs_db
+maintains a current address in the filesystem.
The granularity of the address is a filesystem structure.
This can be a filesystem block,
an inode or quota (smaller than a filesystem block),
Commands which follow the structure of the filesystem always set the type
as well as the address.
Commands which examine pieces of an individual file (inode) need the current
-inode to be set, this is done with the \f3inode\f1 command.
+inode to be set, this is done with the
+.B inode
+command.
.PP
The current address/type information is actually maintained in a
stack that can be explicitly manipulated with the
-\f3push\f1, \f3pop\f1, and \f3stack\f1 commands.
+.BR push ", " pop ", and " stack
+commands.
This allows for easy examination of a nested filesystem structure.
Also, the last several locations visited are stored in a ring buffer
which can be manipulated with the
-\f3forward\f1, \f3back\f3, and \f3ring\f1 commands.
+.BR forward ", " back ", and " ring
+commands.
.PP
XFS filesystems are divided into a small number of allocation groups.
-\f2xfs_db\f1 maintains a notion of the current allocation group which is
-manipulated by some commands.
-The initial allocation group is 0.
+.B xfs_db
+maintains a notion of the current allocation group which is
+manipulated by some commands. The initial allocation group is 0.
.SH COMMANDS
.PP
-Many commands have extensive online help.
-Use the \f3help\f1 command for more details on any command.
-.TP 10
-\f3a\f1
-See the \f3addr\f1 command.
-.TP
-\f3ablock\f1 \f2filoff\f1
-Set current address to the offset \f2filoff\f1 (a filesystem block number)
-in the attribute area of the current inode.
-.TP
-\f3addr\f1 [ \f2field-expression\f1 ]
-Set current address to the value of the \f2field-expression\f1.
-This is used to ``follow'' a reference in one structure to the object
-being referred to.
-If no argument is given the current address is printed.
-.TP
-\f3agf\f1 [ \f2agno\f1 ]
-Set current address to the AGF block for allocation group \f2agno\f1.
+Many commands have extensive online help. Use the
+.B help
+command for more details on any command.
+.TP
+.B a
+See the
+.B addr
+command.
+.TP
+.BI ablock " filoff"
+Set current address to the offset .
+I filoff
+(a filesystem block number) in the attribute area of the current inode.
+.TP
+.BI "addr [" field-expression ]
+Set current address to the value of the
+.IR field-expression .
+This is used to "follow" a reference in one structure to the object
+being referred to. If no argument is given the current address is printed.
+.TP
+.BI "agf [" agno ]
+Set current address to the AGF block for allocation group
+.IR agno .
If no argument is given use the current allocation group.
.TP
-\f3agfl\f1 [ \f2agno\f1 ]
-Set current address to the AGFL block for allocation group \f2agno\f1.
+.BI "agfl [" agno ]
+Set current address to the AGFL block for allocation group
+.IR agno .
If no argument is given use the current allocation group.
.TP
-\f3agi\f1 [ \f2agno\f1 ]
-Set current address to the AGI block for allocation group \f2agno\f1.
+.BI "agi [" agno ]
+Set current address to the AGI block for allocation group
+.IR agno .
If no argument is given use the current allocation group.
.TP
-\f3b\f1
-See the \f3back\f1 command.
+.B b
+See the
+.B back
+command.
.TP
-\f3back\f1
+.B back
Move to the previous location in the position ring.
.TP
-\f3blockfree\f1
+.B blockfree
Free block usage information collected by the last execution of the
-\f3blockget\f1 command.
-This must be done before another \f3blockget\f1 command can be given,
-presumably with different arguments than the previous one.
+.B blockget
+command. This must be done before another
+.B blockget
+command can be given, presumably with different arguments than the previous one.
.TP
-\f3blockget\f1 [ \f3\-npsv\f1 ] [ \f3\-b\f1 \f2bno\f1 ] ... [ \f3\-i\f1 \f2ino\f1 ] ...
+.BI "blockget [\-npvs] [\-b " bno "] ... [\-i " ino "] ..."
Get block usage and check filesystem consistency.
The information is saved for use by a subsequent
-\f3blockuse\f1, \f3ncheck\f1, or \f3blocktrash\f1 command.
-See \f2xfs_check\f1(8) for more information.
-.br
-The \f3\-b\f1 option is used to specify filesystem block numbers
-about which verbose information should be printed.
-.br
-The \f3\-i\f1 option is used to specify inode numbers about which
-verbose information should be printed.
-.br
-The \f3\-n\f1 option is used to save pathnames for inodes visited,
-this is used to support the \f2xfs_ncheck\f1(8) command.
-It also means that pathnames will be printed for inodes that have problems.
-This option uses a lot of memory so is not enabled by default.
-.br
-The \f3\-p\f1 option causes error messages to be prefixed with the
-filesystem name being processed.
-This is useful if several copies of \f2xfs_db\f1 are run in parallel.
-.br
-The \f3\-s\f1 option restricts output to severe errors only.
-This is useful if the output is too long otherwise.
-.br
-The \f3\-v\f1 option enables verbose output.
-Messages will be printed for every block and inode processed.
-.TP
-\f3blocktrash\f1 [ \f3\-n\f1 \f2c\f1 ] [ \f3\-x\f1 \f2a\f1 ] [ \f3\-y\f1 \f2b\f1 ] [ \f3\-s\f1 \f2s\f1 ] [ \f3\-0123\f1 ] [ \f3\-t\f1 \f2t\f1 ] ...
+.BR blockuse ", " ncheck ", or " blocktrash
+command. See
+.BR xfs_check (8)
+for more information.
+.RS 1.0i
+.TP 0.4i
+.B \-b
+is used to specify filesystem block numbers about which verbose
+information should be printed.
+.TP
+.B \-i
+is used to specify inode numbers about which verbose information
+should be printed.
+.TP
+.B \-n
+is used to save pathnames for inodes visited, this is used to support the
+.BR xfs_ncheck (8)
+command. It also means that pathnames will be printed for inodes that have
+problems. This option uses a lot of memory so is not enabled by default.
+.TP
+.B \-p
+causes error messages to be prefixed with the filesystem name being
+processed. This is useful if several copies of
+.B xfs_db
+are run in parallel.
+.TP
+.B \-s
+restricts output to severe errors only. This is useful if the output is
+too long otherwise.
+.TP
+.B \-v
+enables verbose output. Messages will be printed for every block and
+inode processed.
+.RE
+.TP
+.BI "blocktrash [\-n " count "] [\-x " min "] [\-y " max "] [\-s " seed "] [\-0|1|2|3] [\-t " type "] ..."
Trash randomly selected filesystem metadata blocks.
Trashing occurs to randomly selected bits in the chosen blocks.
-This command is available only in debugging versions of \f2xfs_db\f1.
-It is useful for testing \f2xfs_repair\f1(8) and \f2xfs_check\f1(8).
-.br
-The \f3\-0\f1, \f3\-1\f1, \f3\-2\f1, and \f3\-3\f1 options (mutually exclusive)
-set the operating mode for \f3blocktrash\f1.
-In \f3\-0\f1 mode, changed bits are cleared.
-In \f3\-1\f1 mode, changed bits are set.
-In \f3\-2\f1 mode, changed bits are inverted.
-In \f3\-3\f1 mode, changed bits are randomized.
-.br
-The \f3\-n\f1 option supplies the count of block-trashings to perform
-(default 1).
-.br
-The \f3\-s\f1 option supplies a seed to the random processing.
-.br
-The \f3\-t\f1 option gives a type of blocks to be selected
-for trashing.
-Multiple \f3\-t\f1 options may be given.
-If no \f3\-t\f1 options are given then all metadata types can be trashed.
-.br
-The \f3\-x\f1 option sets the minimum size of bit range to be trashed.
-The default value is 1.
-.br
-The \f3\-y\f1 option sets the maximum size of bit range to be trashed.
-The default value is 1024.
-.TP
-\f3blockuse\f1 [ \f3\-n\f1 ] [ \f3\-c\f1 \f2blockcount\f1 ]
+This command is available only in debugging versions of
+.BR xfs_db .
+It is useful for testing
+.BR xfs_repair "(8) and " xfs_check (8).
+.RS 1.0i
+.TP 0.4i
+.BR \-0 " | " -1 " | " -2 " | " -3
+These are used to set the operating mode for
+.BR blocktrash .
+Only one can be used:
+.B \-0
+changed bits are cleared;
+.B \-1
+changed bits are set;
+.B -2
+changed bits are inverted;
+.B -3
+changed bits are randomized.
+.TP
+.B \-n
+supplies the
+.I count
+of block-trashings to perform (default 1).
+.TP
+.B \-s
+supplies a
+.I seed
+to the random processing.
+.TP
+.B \-t
+gives a
+.I type
+of blocks to be selected for trashing. Multiple
+.B \-t
+options may be given. If no
+.B \-t
+options are given then all metadata types can be trashed.
+.TP
+.B \-x
+sets the
+.I minimum
+size of bit range to be trashed. The default value is 1.
+.TP
+.B \-y
+sets the
+.I maximum
+size of bit range to be trashed. The default value is 1024.
+.RE
+.TP
+.BI "blockuse [\-n] [\-c " count ]
Print usage for current filesystem block(s).
For each block, the type and (if any) inode are printed.
-.br
-The \f3\-c\f1 option specifies a count of blocks to process.
-The default value is 1 (the current block only).
-.br
-The \f3\-n\f1 option specifies that file names should be printed.
-The prior \f3blockget\f1 command must have also specified the \f3\-n\f1 option.
+.RS 1.0i
+.TP 0.4i
+.B \-c
+specifies a
+.I count
+of blocks to process. The default value is 1 (the current block only).
+.TP
+.B \-n
+specifies that file names should be printed. The prior
+.B blockget
+command must have also specified the
+.B \-n
+option.
+.RE
.TP
-\f3bmap\f1 [ \f3\-a\f1 ] [ \f3\-d\f1 ] [ \f2block\f1 [ \f2len\f1 ] ]
+.BI "bmap [\-a\] [\-d] [" block " [" len ]]
Show the block map for the current inode.
The map display can be restricted to an area of the file with the
-\f2block\f1 and \f2len\f1 arguments.
-If \f2block\f1 is given and \f2len\f1 is omitted then 1 is assumed for len.
-.br
-The \f3\-a\f1 and \f3\-d\f1 options are used to select the attribute or data
+.I block
+and
+.I len
+arguments. If
+.I block
+is given and
+.I len
+is omitted then 1 is assumed for len.
+.IP
+The
+.B \-a
+and
+.B \-d
+options are used to select the attribute or data
area of the inode, if neither option is given then both areas are shown.
.TP
-\f3check\f1
-See the \f3blockget\f1 command.
+.B check
+See the
+.B blockget
+command.
.TP
-\f3convert\f1 \f2type\f1 \f2number\f1 [ \f2type\f1 \f2number\f1 ] ... \f2type\f1
+.BI "convert " "type number" " [" "type number" "] ... " type
Convert from one address form to another.
-The known \f2type\f1s, with alternate names, are:
-\f3agblock\f1 or \f3agbno\f1 (filesystem block within an allocation group),
-\f3agino\f1 or \f3aginode\f1 (inode number within an allocation group),
-\f3agnumber\f1 or \f3agno\f1 (allocation group number),
-\f3bboff\f1 or \f3daddroff\f1 (byte offset in a \f3daddr\f1),
-\f3blkoff\f1 or \f3fsboff\f1 or \f3agboff\f1 (byte offset in a \f3agblock\f1
-or \f3fsblock\f1),
-\f3byte\f1 or \f3fsbyte\f1 (byte address in filesystem),
-\f3daddr\f1 or \f3bb\f1 (disk address, 512-byte blocks),
-\f3fsblock\f1 or \f3fsb\f1 or \f3fsbno\f1 (filesystem block, see the
-\f3fsblock\f1 command),
-\f3ino\f1 or \f3inode\f1 (inode number),
-\f3inoidx\f1 or \f3offset\f1 (index of inode in filesystem block),
-and \f3inooff\f1 or \f3inodeoff\f1 (byte offset in inode).
-Only conversions that ``make sense'' are allowed.
+The known
+.IR type s,
+with alternate names, are:
+.RS 1.0i
+.PD 0
+.HP
+.B agblock
+or
+.B agbno
+(filesystem block within an allocation group)
+.HP
+.B agino
+or
+.B aginode
+(inode number within an allocation group)
+.HP
+.B agnumber
+or
+.B agno
+(allocation group number)
+.HP
+.B bboff
+or
+.B daddroff
+(byte offset in a
+.BR daddr )
+.HP
+.B blkoff
+or
+.B fsboff or
+.B agboff
+(byte offset in a
+.B agblock
+or
+.BR fsblock )
+.HP
+.B byte
+or
+.B fsbyte
+(byte address in filesystem)
+.HP
+.B daddr
+or
+.B bb
+(disk address, 512-byte blocks)
+.HP
+.B fsblock
+or
+.B fsb
+or
+.B fsbno
+(filesystem block, see the
+.B fsblock
+command)
+.HP
+.B ino
+or
+.B inode
+(inode number)
+.HP
+.B inoidx
+or
+.B offset
+(index of inode in filesystem block)
+.HP
+.B inooff
+or
+.B inodeoff
+(byte offset in inode)
+.PD
+.RE
+.IP
+Only conversions that "make sense" are allowed.
The compound form (with more than three arguments) is useful for
conversions such as
-\f3convert\f1 \f3agno\f1 \f2ag\f1 \f3agbno\f1 \f2agb\f1 \f3fsblock\f1.
-.TP
-\f3daddr\f1 [ \f2d\f1 ]
-Set current address to the daddr (512 byte block) given by \f2d\f1.
-If no value for \f2d\f1 is given the current address is printed,
-expressed as a daddr.
-The type is set to \f3data\f1 (uninterpreted).
-.TP
-\f3dblock\f1 \f2filoff\f1
-Set current address to the offset \f2filoff\f1 (a filesystem block number)
-in the data area of the current inode.
-.TP
-\f3debug\f1 [ \f2flagbits\f1 ]
-Set debug option bits.
-These are used for debugging \f2xfs_db\f1.
-If no value is given for \f2flagbits\f1, print the current debug option bits.
-These are for the use of the implementor.
-.TP
-\f3dquot\f1 [ \f2projectid_or_userid\f1 ]
+.B convert agno
+.I ag
+.B agbno
+.I agb
+.BR fsblock .
+.TP
+.BI "daddr [" d ]
+Set current address to the daddr (512 byte block) given by
+.IR d .
+If no value for
+.I d
+is given the current address is printed, expressed as a daddr.
+The type is set to .
+.B data
+(uninterpreted).
+.TP
+.BI dblock " filoff"
+Set current address to the offset
+.I filoff
+(a filesystem block number) in the data area of the current inode.
+.TP
+.BI "debug [" flagbits ]
+Set debug option bits. These are used for debugging
+.BR xfs_db .
+If no value is given for
+.IR flagbits ,
+print the current debug option bits. These are for the use of the implementor.
+.TP
+.BI "dquot [" projectid_or_userid ]
Set current address to a project or user quota block.
.TP
-\f3echo\f1 [ \f2arg\f1 ] ...
+.BI "echo [" arg "] ..."
Echo the arguments to the output.
.TP
-\f3f\f1
-See the \f3forward\f1 command.
+.B f
+See the
+.B forward
+command.
.TP
-\f3forward\f1
+.B forward
Move forward to the next entry in the position ring.
.TP
-\f3frag\f1 [ \f3\-adflqRrv\f1 ]
-Get file fragmentation data.
-This prints information about fragmentation of file data in the filesystem
-(as opposed to fragmentation of freespace,
-for which see the \f3freesp\f1 command).
-Every file in the filesystem is examined to see how far from ideal
-its extent mappings are.
-A summary is printed giving the totals.
-.br
-The \f3\-v\f1 option sets verbosity,
-every inode has information printed for it.
+.B frag [\-adflqRrv]
+Get file fragmentation data. This prints information about fragmentation
+of file data in the filesystem (as opposed to fragmentation of freespace,
+for which see the
+.B freesp
+command). Every file in the filesystem is examined to see how far from ideal
+its extent mappings are. A summary is printed giving the totals.
+.RS 1.0i
+.TP 0.4i
+.B \-v
+sets verbosity, every inode has information printed for it.
The remaining options select which inodes and extents are examined.
If no options are given then all are assumed set,
otherwise just those given are enabled.
-.br
-The \f3\-a\f1 option enables processing of attribute data.
-.br
-The \f3\-d\f1 option enables processing of directory data.
-.br
-The \f3\-f\f1 option enables processing of regular file data.
-.br
-The \f3\-l\f1 option enables processing of symbolic link data.
-.br
-The \f3\-q\f1 option enables processing of quota file data.
-.br
-The \f3\-R\f1 option enables processing of realtime control file data.
-.br
-The \f3\-r\f1 option enables processing of realtime file data.
.TP
-\f3freesp\f1 [ \f3\-bcds\f1 ] [ \f3\-a\f1 \f2a\f1 ] ... [ \f3\-e\f1 \f2i\f1 ] [ \f3\-h\f1 \f2h1\f1 ] ... [ \f3\-m\f1 \f2m\f1 ]
-Summarize free space for the filesystem.
-The free blocks are examined and totalled,
-and displayed in the form of a histogram,
-with a count of extents in each range of free extent sizes.
-.br
-The \f3\-a\f1 \f2a\f1 option adds \f2a\f1 to the list of
-allocation groups to be processed.
-If no \f3\-a\f1 options are given then all allocation groups are processed.
-.br
-The \f3\-b\f1 option specifies that the histogram buckets are binary-sized,
-with the starting sizes being the powers of 2.
-.br
-The \f3\-c\f1 option specifies that \f3freesp\f1 will search the
-by-size (cnt) space Btree instead of the default by-block (bno) space Btree.
-.br
-The \f3\-d\f1 option specifies that every free extent will be displayed.
-.br
-The \f3\-e\f1 \f2i\f1 option specifies that the histogram buckets are
-equal-sized, with the size specified as \f2i\f1.
-.br
-The \f3\-h\f1 \f2h1\f1 option specifies a starting block number
-for a histogram bucket as \f2h1\f1.
-Multiple \f3\-h\f1 options are given to specify the complete set of buckets.
-.br
-The \f3\-m\f1 \f2m\f1 option specifies that the histogram
-starting block numbers are powers of \f2m\f1.
-This is the general case of \f3\-b\f1.
-.br
-The \f3\-s\f1 option specifies that a final summary of total free extents,
+.B \-a
+enables processing of attribute data.
+.TP
+.B \-d
+enables processing of directory data.
+.TP
+.B \-f
+enables processing of regular file data.
+.TP
+.B \-l
+enables processing of symbolic link data.
+.TP
+.B \-q
+enables processing of quota file data.
+.TP
+.B \-R
+enables processing of realtime control file data.
+.TP
+.B \-r
+enables processing of realtime file data.
+.RE
+.TP
+.BI "freesp [\-bcds] [\-a " ag "] ... [\-e " i "] [\-h " h1 "] ... [\-m " m ]
+Summarize free space for the filesystem. The free blocks are examined
+and totalled, and displayed in the form of a histogram, with a count
+of extents in each range of free extent sizes.
+.RS 1.0i
+.TP 0.4i
+.B \-a
+adds
+.I ag
+to the list of allocation groups to be processed. If no
+.B \-a
+options are given then all allocation groups are processed.
+.TP
+.B \-b
+specifies that the histogram buckets are binary-sized, with the starting
+sizes being the powers of 2.
+.TP
+.B \-c
+specifies that
+.B freesp
+will search the by-size (cnt) space Btree instead of the default
+by-block (bno) space Btree.
+.TP
+.B \-d
+specifies that every free extent will be displayed.
+.TP
+.B \-e
+specifies that the histogram buckets are
+equal-sized, with the size specified as
+.IR i .
+.TP
+.B \-h
+specifies a starting block number for a histogram bucket as
+.IR h1 .
+Multiple
+.BR \-h 's
+are given to specify the complete set of buckets.
+.TP
+.B \-m
+specifies that the histogram starting block numbers are powers of
+.IR m .
+This is the general case of
+.BR \-b .
+.TP
+.B \-s
+specifies that a final summary of total free extents,
free blocks, and the average free extent size is printed.
+.RE
.TP
-\f3fsb\f1
-See the \f3fsblock\f1 command.
-.TP
-\f3fsblock\f1 [ \f2fsb\f1 ]
-Set current address to the fsblock value given by \f2fsb\f1.
-If no value for \f2fsb\f1 is given the current address is printed,
-expressed as an fsb.
-The type is set to \f3data\f1 (uninterpreted).
-XFS filesystem block numbers are computed
-((\f2agno\f1 << \f2agshift\f1) | \f2agblock\f1)
-where \f2agshift\f1 depends on the size of an allocation group.
-Use the \f3convert\f1 command to convert to and from this form.
-Block numbers given for file blocks
-(for instance from the \f3bmap\f1 command)
-are in this form.
-.TP
-\f3hash\f1 \f2string\f1
-Prints the hash value of \f2string\f1 using the hash function of the XFS
-directory and attribute implementation.
-.TP
-\f3help\f1 [ \f2command\f1 ]
+.B fsb
+See the
+.B fsblock
+command.
+.TP
+.BI "fsblock [" fsb ]
+Set current address to the fsblock value given by
+.IR fsb .
+If no value for
+.I fsb
+is given the current address is printed, expressed as an fsb.
+The type is set to
+.B data
+(uninterpreted). XFS filesystem block numbers are computed
+.RI (( agno " << " agshift ") | " agblock )
+where
+.I agshift
+depends on the size of an allocation group. Use the
+.B convert
+command to convert to and from this form. Block numbers given for file blocks
+(for instance from the
+.B bmap
+command) are in this form.
+.TP
+.BI hash " string
+Prints the hash value of
+.I string
+using the hash function of the XFS directory and attribute implementation.
+.TP
+.BI "help [" command ]
Print help for one or all commands.
.TP
-\f3inode\f1 [ \f2inode#\f1 ]
-Set the current inode number.
-If no \f2inode#\f1 is given, print the current inode number.
+.BI "inode [" inode# ]
+Set the current inode number. If no
+.I inode#
+is given, print the current inode number.
.TP
-\f3label\f1 [ \f2label\f1 ]
-Set the filesystem label.
-The filesystem label can be used by
-.IR mount (8)
+.BI "label [" label ]
+Set the filesystem label. The filesystem label can be used by
+.BR mount (8)
instead of using a device special file.
The maximum length of an XFS label is 12 characters \- use of a longer
-\f2label\f1 will result in truncation and a warning will be issued.
-If no \f2label\f1 is given, the current filesystem label is printed.
+.I label
+will result in truncation and a warning will be issued. If no
+.I label
+is given, the current filesystem label is printed.
.TP
-\f3log\f1 [ \f3stop\f1 | \f3start\f1 \f2filename\f1 ]
-Start logging output to \f2filename\f1, stop logging,
-or print the current logging status.
+.BI "log [stop | start " filename ]
+Start logging output to
+.IR filename ,
+stop logging, or print the current logging status.
.TP
-\f3metadump\f1 [ \f3-egow\f1 ] \f2filename\f1
+.BI "metadump [\-egow] " filename
Dumps metadata to a file. See
-.BR xfs_metadump "(8) for more information."
-.TP
-\f3ncheck\f1 [ \f3\-s\f1 ] [ \f3\-i\f1 \f2ino\f1 ] ...
-Print name-inode pairs.
-A \f3blockget \-n\f1 command must be run first to gather the information.
-.br
-The \f3\-i\f1 option specifies an inode number to be printed.
-If no \f3\-i\f1 options are given then all inodes are printed.
-.br
-The \f3\-s\f1 option specifies that only setuid and setgid files are printed.
-.TP
-\f3p\f1
-See the \f3print\f1 command.
+.BR xfs_metadump (8)
+for more information.
+.TP
+.BI "ncheck [\-s] [\-i " ino "] ..."
+Print name-inode pairs. A
+.B blockget \-n
+command must be run first to gather the information.
+.RS 1.0i
+.TP 0.4i
+.B \-i
+specifies an inode number to be printed. If no
+.B \-i
+options are given then all inodes are printed.
+.TP
+.B \-s
+specifies that only setuid and setgid files are printed.
+.RE
+.TP
+.B p
+See the
+.B print
+command.
.TP
-\f3pop\f1
+.B pop
Pop location from the stack.
.TP
-\f3print\f1 [ \f2field-expression\f1 ] ...
+.BI "print [" field-expression "] ..."
Print field values.
If no argument is given, print all fields in the current structure.
.TP
-\f3push\f1 [ \f2command\f1 ]
-Push location to the stack.
-If \f2command\f1 is supplied,
-set the current location to the results of \f2command\f1
+.BI "push [" command ]
+Push location to the stack. If
+.I command
+is supplied, set the current location to the results of
+.I command
after pushing the old location.
.TP
-\f3q\f1
-See the \f3quit\f1 command.
-.TP
-\f3quit\f1
-Exit \f2xfs_db\f1.
-.TP
-\f3ring\f1 [ \f2index\f1 ]
-Show position ring (if no \f2index\f1 argument is given),
-or move to a specific entry in the position ring given by \f2index\f1.
-.TP
-\f3sb\f1 [ \f2agno\f1 ]
-Set current address to SB header in allocation group \f2agno\f1.
-If no \f2agno\f1 is given use the current allocation group number.
-.TP
-\f3source\f1 \f2source-file\f1
-Process commands from \f2source-file\f1.
-\f3source\f1 commands can be nested.
-.TP
-\f3stack\f1
+.B q
+See the
+.B quit
+command.
+.TP
+.B quit
+Exit
+.BR xfs_db .
+.TP
+.BI "ring [" index ]
+Show position ring (if no
+.I index
+argument is given), or move to a specific entry in the position ring given by
+.IR index .
+.TP
+.BI "sb [" agno ]
+Set current address to SB header in allocation group
+.IR agno .
+If no
+.I agno
+is given use the current allocation group number.
+.TP
+.BI "source " source-file
+Process commands from
+.IR source-file .
+.B source
+commands can be nested.
+.TP
+.B stack
View the location stack.
.TP
-\f3type\f1 [ \f2type\f1 ]
-Set the current data type to \f2type\f1.
+.BI "type [" type ]
+Set the current data type to
+.IR type .
If no argument is given, show the current data type.
The possible data types are:
-\f3agf\f1, \f3agfl\f1, \f3agi\f1, \f3attr\f1, \f3bmapbta\f1, \f3bmapbtd\f1,
-\f3bnobt\f1, \f3cntbt\f1, \f3data\f1, \f3dir\f1, \f3dir2\f1, \f3dqblk\f1,
-\f3inobt\f1, \f3inode\f1, \f3log\f1, \f3rtbitmap\f1, \f3rtsummary\f1,
-\f3sb\f1, \f3symlink\f1, and \f3text\f1.
+.BR agf ", " agfl ", " agi ", " attr ", " bmapbta ", " bmapbtd ,
+.BR bnobt ", " cntbt ", " data ", " dir ", " dir2 ", " dqblk ,
+.BR inobt ", " inode ", " log ", " rtbitmap ", " rtsummary ,
+.BR sb ", " symlink " and " text .
See the TYPES section below for more information on these data types.
.TP
-\f3uuid\f1 [ \f2uuid\f1 or \f2generate\f1 or \f2rewrite\f1 ]
+.BI "uuid [" uuid " | generate | rewrite]"
Set the filesystem universally unique identifier (UUID).
The filesystem UUID can be used by
-.IR mount (8)
+.BR mount (8)
instead of using a device special file.
-The \f2uuid\f1 can be set directly to the desired UUID, or it can
-be automatically generated using the \f2generate\f1 option.
-These options will both write the UUID into every copy of the
+The
+.I uuid
+can be set directly to the desired UUID, or it can
+be automatically generated using the
+.B generate
+option. These options will both write the UUID into every copy of the
superblock in the filesystem.
-\f2rewrite\f1 copies the current UUID from the primary superblock
+.B rewrite
+copies the current UUID from the primary superblock
to all secondary copies of the superblock.
If no argument is given, the current filesystem UUID is printed.
.TP
-\f3version\f1 [ \f2feature\f1 | [\f2versionnum\f1 \f2features2\f1 ] ]
+.BI "version [" feature " | " "versionnum features2" ]
Enable selected features for a filesystem (certain features can
be enabled on an unmounted filesystem, after
-.IR mkfs.xfs (8)
+.BR mkfs.xfs (8)
has created the filesystem).
-Support for unwritten extents can be enabled using the \f2extflg\f1
-option.
-Support for version 2 log format can be enabled using the \f2log2\f1
-option.
-Support for extended attributes can be enabled using the \f2attr1\f1
-or \f2attr2\f1 option.
-Once enabled, extended attributes cannot be disabled, but the user
-may toggle between \f2attr1\f1 and \f2attr2\f1 at will (older kernels
-may not support the newer version).
-.br
+Support for unwritten extents can be enabled using the
+.B extflg
+option. Support for version 2 log format can be enabled using the
+.B log2
+option. Support for extended attributes can be enabled using the
+.B attr1
+or
+.B attr2
+option. Once enabled, extended attributes cannot be disabled, but the user
+may toggle between
+.B attr1
+and
+.B attr2
+at will (older kernels may not support the newer version).
+.IP
+If no argument is given, the current version and feature bits are printed.
With one argument, this command will write the updated version number
into every copy of the superblock in the filesystem.
-If no argument is given, the current version and feature bits are printed.
If two arguments are given, they will be used as numeric values for the
-\f2versionnum\f1 and \f2features2\f1 bits respectively, and their string
-equivalent reported (but no modifications are made).
+.I versionnum
+and
+.I features2
+bits respectively, and their string equivalent reported
+(but no modifications are made).
.TP
-\f3write\f1 [ \f2field\f1 or \f2value\f1 ] ...
+.BI "write [" "field value" "] ..."
Write a value to disk.
Specific fields can be set in structures (struct mode),
or a block can be set to data values (data mode),
or a block can be set to string values (string mode, for symlink blocks).
The operation happens immediately: there is no buffering.
-.br
+.IP
Struct mode is in effect when the current type is structural,
-i.e. not data.
-For struct mode, the syntax is ``\f3write\f1 \f2field\f1 \f2value\f1''.
-.br
-Data mode is in effect when the current type is data.
-In this case the contents of the block can be shifted or rotated left or right,
-or filled with a sequence, a constant value, or a random value.
-In this mode \f3write\f1 with no arguments gives more information on
-the allowed commands.
+i.e. not data. For struct mode, the syntax is "\c
+.B write
+.I field value\c
+".
+.IP
+Data mode is in effect when the current type is data. In this case the
+contents of the block can be shifted or rotated left or right, or filled
+with a sequence, a constant value, or a random value. In this mode
+.B write
+with no arguments gives more information on the allowed commands.
.SH TYPES
This section gives the fields in each structure type and their meanings.
Note that some types of block cover multiple actual structures,
for instance directory blocks.
-.TP 10
-\f3agf\f1
+.TP 1.0i
+.B agf
The AGF block is the header for block allocation information;
it is in the second 512-byte block of each allocation group.
The following fields are defined:
-.br
-\f3magicnum\f1: AGF block magic number, 0x58414746 ('XAGF')
-.br
-\f3versionnum\f1: version number, currently 1
-.br
-\f3seqno\f1: sequence number starting from 0
-.br
-\f3length\f1: size in filesystem blocks of the allocation group.
-All allocation groups except the last one of the filesystem have
-the superblock's \f3agblocks\f1 value here
-.br
-\f3bnoroot\f1: block number of the root of the Btree holding free space
-information sorted by block number
-.br
-\f3cntroot\f1: block number of the root of the Btree holding free space
-information sorted by block count
-.br
-\f3bnolevel\f1: number of levels in the by-block-number Btree
-.br
-\f3cntlevel\f1: number of levels in the by-block-count Btree
-.br
-\f3flfirst\f1: index into the AGFL block of the first active entry
-.br
-\f3fllast\f1: index into the AGFL block of the last active entry
-.br
-\f3flcount\f1: count of active entries in the AGFL block
-.br
-\f3freeblks\f1: count of blocks represented in the freespace Btrees
-.br
-\f3longest\f1: longest free space represented in the freespace Btrees
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magicnum
+AGF block magic number, 0x58414746 ('XAGF').
+.TP
+.B versionnum
+version number, currently 1.
+.TP
+.B seqno
+sequence number starting from 0.
+.TP
+.B length
+size in filesystem blocks of the allocation group. All allocation
+groups except the last one of the filesystem have the superblock's
+.B agblocks
+value here.
+.TP
+.B bnoroot
+block number of the root of the Btree holding free space
+information sorted by block number.
.TP
-\f3agfl\f1
+.B cntroot
+block number of the root of the Btree holding free space
+information sorted by block count.
+.TP
+.B bnolevel
+number of levels in the by-block-number Btree.
+.TP
+.B cntlevel
+number of levels in the by-block-count Btree.
+.TP
+.B flfirst
+index into the AGFL block of the first active entry.
+.TP
+.B fllast
+index into the AGFL block of the last active entry.
+.TP
+.B flcount
+count of active entries in the AGFL block.
+.TP
+.B freeblks
+count of blocks represented in the freespace Btrees.
+.TP
+.B longest
+longest free space represented in the freespace Btrees.
+.TP
+.B btreeblks
+number of blocks held in the AGF Btrees.
+.PD
+.RE
+.TP
+.B agf
The AGFL block contains block numbers for use of the block allocator;
it is in the fourth 512-byte block of each allocation group.
Each entry in the active list is a block number within the allocation group
that can be used for any purpose if space runs low.
-The AGF block fields \f3flfirst\f1, \f3fllast\f1, and \f3flcount\f1
+The AGF block fields
+.BR flfirst ", " fllast ", and " flcount
designate which entries are currently active.
Entry space is allocated in a circular manner within the AGFL block.
Fields defined:
-.br
-\f3bno\f1: array of all block numbers.
-Even those which are not active are printed
-.TP
-\f3agi\f1
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B bno
+array of all block numbers. Even those which are not active are printed.
+.PD
+.RE
+.TP
+.B agi
The AGI block is the header for inode allocation information;
it is in the third 512-byte block of each allocation group.
Fields defined:
-.br
-\f3magicnum\f1: AGI block magic number, 0x58414749 ('XAGI')
-.br
-\f3versionnum\f1: version number, currently 1
-.br
-\f3seqno\f1: sequence number starting from 0
-.br
-\f3length\f1: size in filesystem blocks of the allocation group
-.br
-\f3count\f1: count of inodes allocated
-.br
-\f3root\f1: block number of the root of the Btree holding inode allocation
-information
-.br
-\f3level\f1: number of levels in the inode allocation Btree
-.br
-\f3freecount\f1: count of allocated inodes that are not in use
-.br
-\f3newino\f1: last inode number allocated
-.br
-\f3dirino\f1: unused
-.br
-\f3unlinked\f1: an array of inode numbers within the allocation group.
-The entries in the AGI block are the heads of lists which run through the
-inode \f3next_unlinked\f1 field.
-These inodes are to be unlinked the next time the filesystem is mounted
-.TP
-\f3attr\f1
-An attribute fork is organized as a Btree with the actual data
-embedded in the leaf blocks.
-The root of the Btree is found in block 0 of the fork.
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magicnum
+AGI block magic number, 0x58414749 ('XAGI').
+.TP
+.B versionnum
+version number, currently 1.
+.TP
+.B seqno
+sequence number starting from 0.
+.TP
+.B length
+size in filesystem blocks of the allocation group.
+.TP
+.B count
+count of inodes allocated.
+.TP
+.B root
+block number of the root of the Btree holding inode allocation information.
+.TP
+.B level
+number of levels in the inode allocation Btree.
+.TP
+.B freecount
+count of allocated inodes that are not in use.
+.TP
+.B newino
+last inode number allocated.
+.TP
+.B dirino
+unused.
+.TP
+.B unlinked
+an array of inode numbers within the allocation group. The entries
+in the AGI block are the heads of lists which run through the inode
+.B next_unlinked
+field. These inodes are to be unlinked the next time the filesystem is mounted.
+.PD
+.RE
+.TP
+.B attr
+An attribute fork is organized as a Btree with the actual data embedded
+in the leaf blocks. The root of the Btree is found in block 0 of the fork.
The index (sort order) of the Btree is the hash value of the attribute name.
-All the blocks contain a \f3blkinfo\f1 structure at the beginning,
-see type \f3dir\f1 for a description.
-Nonleaf blocks are identical in format to those for version 1 and
-version 2 directories, see type \f3dir\f1 for a description.
-Leaf blocks can refer to ``local'' or ``remote'' attribute values.
-Local values are stored directly in the leaf block.
+All the blocks contain a
+.B blkinfo
+structure at the beginning, see type
+.B dir
+for a description. Nonleaf blocks are identical in format to those for
+version 1 and version 2 directories, see type
+.B dir
+for a description. Leaf blocks can refer to "local" or "remote" attribute
+values. Local values are stored directly in the leaf block.
Remote values are stored in an independent block in the attribute fork
-(with no structure).
-Leaf blocks contain the following fields:
-.br
-\f3hdr\f1: header containing
-a \f3blkinfo\f1 structure \f3info\f1 (magic number 0xfbee),
-a \f3count\f1 of active entries,
-\f3usedbytes\f1 total bytes of names and values,
-the \f3firstused\f1 byte in the name area,
-\f3holes\f1 set if the block needs compaction,
-and array \f3freemap\f1 as for \f3dir\f1 leaf blocks
-.br
-\f3entries\f1: array of structures containing
-a \f3hashval\f1,
-\f3nameidx\f1 (index into the block of the name),
-and flags \f3incomplete\f1,
-\f3root\f1,
-and \f3local\f1
-.br
-\f3nvlist\f1: array of structures describing the attribute names and values.
-Fields always present:
-\f3valuelen\f1 (length of value in bytes),
-\f3namelen\f1,
-and \f3name\f1.
+(with no structure). Leaf blocks contain the following fields:
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B hdr
+header containing a
+.B blkinfo
+structure
+.B info
+(magic number 0xfbee), a
+.B count
+of active entries,
+.B usedbytes
+total bytes of names and values, the
+.B firstused
+byte in the name area,
+.B holes
+set if the block needs compaction, and array
+.B freemap
+as for
+.B dir
+leaf blocks.
+.TP
+.B entries
+array of structures containing a
+.BR hashval ,
+.B nameidx
+(index into the block of the name), and flags
+.BR incomplete ,
+.BR root ,
+and
+.BR local .
+.TP
+.B nvlist
+array of structures describing the attribute names and values. Fields
+always present:
+.B valuelen
+(length of value in bytes),
+.BR namelen ,
+and
+.BR name .
Fields present for local values:
-\f3value\f1 (value string).
-Fields present for remote values:
-\f3valueblk\f1 (fork block number of containing the value).
-.TP
-\f3bmapbt\f1
+.B value
+(value string). Fields present for remote values:
+.B valueblk
+(fork block number of containing the value).
+.PD
+.RE
+.TP
+.B bmapbt
Files with many extents in their data or attribute fork will have the
extents described by the contents of a Btree for that fork,
instead of being stored directly in the inode.
The blocks are linked to sibling left and right blocks at each level,
as well as by pointers from parent to child blocks.
Each block contains the following fields:
-.br
-\f3magic\f1: bmap Btree block magic number, 0x424d4150 ('BMAP')
-.br
-\f3level\f1: level of this block above the leaf level
-.br
-\f3numrecs\f1: number of records or keys in the block
-.br
-\f3leftsib\f1: left (logically lower) sibling block, 0 if none
-.br
-\f3rightsib\f1: right (logically higher) sibling block, 0 if none
-.br
-\f3recs\f1: [leaf blocks only] array of extent records.
-Each record contains
-\f3startoff\f1,
-\f3startblock\f1,
-\f3blockcount\f1,
-and \f3extentflag\f1 (1 if the extent is unwritten)
-.br
-\f3keys\f1: [nonleaf blocks only] array of key records.
-These are the first key value of each block in the level below this one.
-Each record contains \f3startoff\f1
-.br
-\f3ptrs\f1: [nonleaf blocks only] array of child block pointers.
-Each pointer is a filesystem block number to the next level in the Btree
-.TP
-\f3bnobt\f1
-There is one set of filesystem blocks forming the by-block-number allocation
-Btree for each allocation group.
-The root block of this Btree is designated by the \f3bnoroot\f1 field in the
-coresponding AGF block.
-The blocks are linked to sibling left and right blocks at each level,
-as well as by pointers from parent to child blocks.
-Each block has the following fields:
-.br
-\f3magic\f1: BNOBT block magic number, 0x41425442 ('ABTB')
-.br
-\f3level\f1: level number of this block, 0 is a leaf
-.br
-\f3numrecs\f1: number of data entries in the block
-.br
-\f3leftsib\f1: left (logically lower) sibling block, 0 if none
-.br
-\f3rightsib\f1: right (logically higher) sibling block, 0 if none
-.br
-\f3recs\f1: [leaf blocks only] array of freespace records.
-Each record contains
-\f3startblock\f1
-and \f3blockcount\f1
-.br
-\f3keys\f1: [nonleaf blocks only] array of key records.
-These are the first value of each block in the level below this one.
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magic
+bmap Btree block magic number, 0x424d4150 ('BMAP').
+.TP
+.B level
+level of this block above the leaf level.
+.TP
+.B numrecs
+number of records or keys in the block.
+.TP
+.B leftsib
+left (logically lower) sibling block, 0 if none.
+.TP
+.B rightsib
+right (logically higher) sibling block, 0 if none.
+.TP
+.B recs
+[leaf blocks only] array of extent records.
Each record contains
-\f3startblock\f1
-and \f3blockcount\f1
-.br
-\f3ptrs\f1: [nonleaf blocks only] array of child block pointers.
-Each pointer is a block number within the allocation group to the next level
-in the Btree
-.TP
-\f3cntbt\f1
-There is one set of filesystem blocks forming the by-block-count allocation
-Btree for each allocation group.
-The root block of this Btree is designated by the \cntroot\f1 field in the
-coresponding AGF block.
+.BR startoff ,
+.BR startblock ,
+.BR blockcount ,
+and
+.B extentflag
+(1 if the extent is unwritten).
+.TP
+.B keys
+[nonleaf blocks only] array of key records. These are the first key
+value of each block in the level below this one. Each record contains
+.BR startoff .
+.TP
+.B ptrs
+[nonleaf blocks only] array of child block pointers.
+Each pointer is a filesystem block number to the next level in the Btree.
+.PD
+.RE
+.TP
+.B bnobt
+There is one set of filesystem blocks forming the by-block-number
+allocation Btree for each allocation group. The root block of this
+Btree is designated by the
+.B bnoroot
+field in the coresponding AGF block.
The blocks are linked to sibling left and right blocks at each level,
as well as by pointers from parent to child blocks.
Each block has the following fields:
-.br
-\f3magic\f1: CNTBT block magic number, 0x41425443 ('ABTC')
-.br
-\f3level\f1: level number of this block, 0 is a leaf
-.br
-\f3numrecs\f1: number of data entries in the block
-.br
-\f3leftsib\f1: left (logically lower) sibling block, 0 if none
-.br
-\f3rightsib\f1: right (logically higher) sibling block, 0 if none
-.br
-\f3recs\f1: [leaf blocks only] array of freespace records.
-Each record contains
-\f3startblock\f1
-and \f3blockcount\f1
-.br
-\f3keys\f1: [nonleaf blocks only] array of key records.
-These are the first value of each block in the level below this one.
-Each record contains
-\f3blockcount\f1
-and \f3startblock\f1
-.br
-\f3ptrs\f1: [nonleaf blocks only] array of child block pointers.
-Each pointer is a block number within the allocation group to the next level
-in the Btree
-.TP
-\f3data\f1
-User file blocks, and other blocks whose type is unknown,
-have this type for display purposes in \f2xfs_db\f1.
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magic
+BNOBT block magic number, 0x41425442 ('ABTB').
+.TP
+.B level
+level number of this block, 0 is a leaf.
+.TP
+.B numrecs
+number of data entries in the block.
+.TP
+.B leftsib
+left (logically lower) sibling block, 0 if none.
+.TP
+.B rightsib
+right (logically higher) sibling block, 0 if none.
+.TP
+.B recs
+[leaf blocks only] array of freespace records. Each record contains
+.B startblock
+and
+.BR blockcount .
+.TP
+.B keys
+[nonleaf blocks only] array of key records. These are the first value
+of each block in the level below this one. Each record contains
+.B startblock
+and
+.BR blockcount .
+.TP
+.B ptrs
+[nonleaf blocks only] array of child block pointers. Each pointer is a
+block number within the allocation group to the next level in the Btree.
+.PD
+.RE
+.TP
+.B cntbt
+There is one set of filesystem blocks forming the by-block-count
+allocation Btree for each allocation group. The root block of this
+Btree is designated by the
+.B cntroot
+field in the coresponding AGF block. The blocks are linked to sibling
+left and right blocks at each level, as well as by pointers from parent
+to child blocks. Each block has the following fields:
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magic
+CNTBT block magic number, 0x41425443 ('ABTC').
+.TP
+.B level
+level number of this block, 0 is a leaf.
+.TP
+.B numrecs
+number of data entries in the block.
+.TP
+.B leftsib
+left (logically lower) sibling block, 0 if none.
+.TP
+.B rightsib
+right (logically higher) sibling block, 0 if none.
+.TP
+.B recs
+[leaf blocks only] array of freespace records. Each record contains
+.B startblock
+and
+.BR blockcount .
+.TP
+.B keys
+[nonleaf blocks only] array of key records. These are the first value
+of each block in the level below this one. Each record contains
+.B blockcount
+and
+.BR startblock .
+.TP
+.B ptrs
+[nonleaf blocks only] array of child block pointers. Each pointer is a
+block number within the allocation group to the next level in the Btree.
+.PD
+.RE
+.TP
+.B data
+User file blocks, and other blocks whose type is unknown, have this
+type for display purposes in
+.BR xfs_db .
The block data is displayed in hexadecimal format.
.TP
-\f3dir\f1
+.B dir
A version 1 directory is organized as a Btree with the directory data
-embedded in the leaf blocks.
-The root of the Btree is found in block 0 of the file.
-The index (sort order) of the Btree is the hash value of the entry name.
-All the blocks contain a \f3blkinfo\f1 structure at the beginning
-with the following fields:
-.br
-\f3forw\f1: next sibling block
-.br
-\f3back\f1: previous sibling block
-.br
-\f3magic\f1: magic number for this block type
-.sp
-The nonleaf (node) blocks have the following fields:
-.br
-\f3hdr\f1: header containing
-a \f3blkinfo\f1 structure \f3info\f1 (magic number 0xfebe),
-the \f3count\f1 of active entries,
-and the \f3level\f1 of this block above the leaves
-.br
-\f3btree\f1: array of entries containing
-\f3hashval\f1 and
-\f3before\f1 fields.
-The \f3before\f1 value is a block number within the directory file to the
-child block,
-the \f3hashval\f1 is the last hash value in that block
-.sp
+embedded in the leaf blocks. The root of the Btree is found in block 0
+of the file. The index (sort order) of the Btree is the hash value of
+the entry name. All the blocks contain a
+.B blkinfo
+structure at the beginning with the following fields:
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B forw
+next sibling block.
+.TP
+.B back
+previous sibling block.
+.TP
+.B magic
+magic number for this block type.
+.RE
+.IP
+
+The non-leaf (node) blocks have the following fields:
+.RS 1.4i
+.TP 1.2i
+.B hdr
+header containing a
+.B blkinfo
+structure
+.B info
+(magic number 0xfebe), the
+.B count
+of active entries, and the
+.B level
+of this block above the leaves.
+.TP
+.B btree
+array of entries containing
+.B hashval
+and
+.B before
+fields. The
+.B before
+value is a block number within the directory file to the child block, the
+.B hashval
+is the last hash value in that block.
+.RE
+.IP
+
The leaf blocks have the following fields:
-.br
-\f3hdr\f1: header containing
-a \f3blkinfo\f1 structure \f3info\f1 (magic number 0xfeeb),
-the \f3count\f1 of active entries,
-\f3namebytes\f1 (total name string bytes),
-\f3holes\f1 flag (block needs compaction),
-and \f3freemap\f1 (array of \f3base\f1, \f3size\f1 entries for free regions)
-.br
-\f3entries\f1: array of structures containing
-\f3hashval\f1,
-\f3nameidx\f1 (byte index into the block of the name string),
-and \f3namelen\f1
-.br
-\f3namelist\f1: array of structures containing
-\f3inumber\f1
-and \f3name\f1
-.TP
-\f3dir2\f1
+.RS 1.4i
+.TP 1.2i
+.B hdr
+header containing a
+.B blkinfo
+structure
+.B info
+(magic number 0xfeeb), the
+.B count
+of active entries,
+.B namebytes
+(total name string bytes),
+.B holes
+flag (block needs compaction), and
+.B freemap
+(array of
+.BR base ", " size
+entries for free regions).
+.TP
+.B entries
+array of structures containing
+.BR hashval ,
+.B nameidx
+(byte index into the block of the name string), and
+.BR namelen .
+.TP
+.B namelist
+array of structures containing
+.B inumber
+and
+.BR name .
+.RE
+.PD
+.TP
+.B dir2
A version 2 directory has four kinds of blocks.
Data blocks start at offset 0 in the file.
There are two kinds of data blocks: single-block directories have
in the data blocks.
The freespace blocks form an index of longest free spaces within the
data blocks.
-.sp
+.IP
A single-block directory block contains the following fields:
-.br
-\f3bhdr\f1: header containing
-\f3magic\f1 number 0x58443242 ('XD2B')
-and an array \f3bestfree\f1 of the longest 3 free spaces in the block
-(\f3offset\f1, \f3length\f1)
-.br
-\f3bu\f1: array of union structures.
-Each element is either an entry or a freespace.
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B bhdr
+header containing
+.B magic
+number 0x58443242 ('XD2B') and an array
+.B bestfree
+of the longest 3 free spaces in the block
+.RB ( offset ", " length ).
+.TP
+.B bu
+array of union structures. Each element is either an entry or a freespace.
For entries, there are the following fields:
-\f3inumber\f1,
-\f3namelen\f1,
-\f3name\f1,
-and \f3tag\f1.
+.BR inumber ,
+.BR namelen ,
+.BR name ,
+and
+.BR tag .
For freespace, there are the following fields:
-\f3freetag\f1 (0xffff),
-\f3length\f1,
-and \f3tag\f1.
-The \f3tag\f1 value is the byte offset in the block of the start
-of the entry it is contained in
-.br
-\f3bleaf\f1: array of leaf entries containing
-\f3hashval\f1
-and \f3address\f1.
-The \f3address\f1 is a 64-bit word offset into the file
-.br
-\f3btail\f1: tail structure containing
-the total \f3count\f1 of leaf entries
-and \f3stale\f1 count of unused leaf entries
-.sp
+.B freetag
+(0xffff),
+.BR length ,
+and
+.BR tag .
+The
+.B tag
+value is the byte offset in the block of the start of the entry it
+is contained in.
+.TP
+.B bleaf
+array of leaf entries containing
+.B hashval
+and
+.BR address .
+The
+.B address
+is a 64-bit word offset into the file.
+.TP
+.B btail
+tail structure containing the total
+.B count
+of leaf entries and
+.B stale
+count of unused leaf entries.
+.RE
+.IP
+
A data block contains the following fields:
-.br
-\f3dhdr\f1:
+.RS 1.4i
+.TP 1.2i
+.B dhdr
header containing
-\f3magic\f1 number 0x58443244 ('XD2D')
-and an array \f3bestfree\f1 of the longest 3 free spaces in the block
-(\f3offset\f1, \f3length\f1)
-.br
-\f3du\f1: array of union structures as for \f3bu\f1
-.sp
-Leaf blocks have two possible forms.
-If the Btree consists of a single leaf then the freespace information
-is in the leaf block,
+.B magic
+number 0x58443244 ('XD2D') and an array
+.B bestfree
+of the longest 3 free spaces in the block
+.RB ( offset ", " length ).
+.TP
+.B du
+array of union structures as for
+.BR bu .
+.RE
+.IP
+
+Leaf blocks have two possible forms. If the Btree consists of a single
+leaf then the freespace information is in the leaf block,
otherwise it is in separate blocks and the root of the Btree is
-a node block.
-A leaf block contains the following fields:
-.br
-\f3lhdr\f1: header containing
-a \f3blkinfo\f1 structure \f3info\f1 (magic number 0xd2f1 for the single
-leaf case, 0xd2ff for the true Btree case),
-the total \f3count\f1 of leaf entries,
-and \f3stale\f1 count of unused leaf entries
-.br
-\f3lents\f1: leaf entries, as for \f3bleaf\f1
-.br
-\f3lbests\f1: [single leaf only]
-array of values which represent the longest freespace
-in each data block in the directory
-.br
-\f3ltail\f1: [single leaf only] tail structure containing
-\f3bestcount\f1 count of \f3lbests\f1
-.sp
-A node block is identical to that for types \f3attr\f1 and \f3dir\f1.
-.sp
+a node block. A leaf block contains the following fields:
+.RS 1.4i
+.TP 1.2i
+.B lhdr
+header containing a
+.B blkinfo
+structure
+.B info
+(magic number 0xd2f1 for the single leaf case, 0xd2ff for the true
+Btree case), the total
+.B count
+of leaf entries, and
+.B stale
+count of unused leaf entries.
+.TP
+.B lents
+leaf entries, as for
+.BR bleaf .
+.TP
+.B lbests
+[single leaf only] array of values which represent the longest freespace
+in each data block in the directory.
+.TP
+.B ltail
+[single leaf only] tail structure containing
+.B bestcount
+count of
+.BR lbests .
+.RE
+.IP
+
+A node block is identical to that for types
+.B attr
+and
+.BR dir .
+
A freespace block contains the following fields:
-.br
-\f3fhdr\f1: header containing
-\f3magic\f1 number 0x58443246 ('XD2F'),
-\f3firstdb\f1 first data block number covered by this freespace block,
-\f3nvalid\f1 number of valid entries,
-and \f3nused\f1 number of entries representing real data blocks
-.br
-\f3fbests\f1: array of values as for \f3lbests\f1
-.TP
-\f3dqblk\f1
+.RS 1.4i
+.TP 1.2i
+.B fhdr
+header containing
+.B magic
+number 0x58443246 ('XD2F'),
+.B firstdb
+first data block number covered by this freespace block,
+.B nvalid
+number of valid entries, and
+.B nused
+number of entries representing real data blocks.
+.TP
+.B fbests
+array of values as for
+.BR lbests .
+.PD
+.RE
+.TP
+.B dqblk
The quota information is stored in files referred to by the superblock
-\f3uquotino\f1 and \f3pquotino\f1 fields.
-Each filesystem block in a quota file contains a constant number of
-quota entries.
-The quota entry size is currently 136 bytes,
-so with a 4KiB filesystem block size there are 30 quota entries per block.
-The \f3dquot\f1 command is used to locate these entries in the filesystem.
+.B uquotino
+and
+.B pquotino
+fields. Each filesystem block in a quota file contains a constant number of
+quota entries. The quota entry size is currently 136 bytes, so with a 4KiB
+filesystem block size there are 30 quota entries per block. The
+.B dquot
+command is used to locate these entries in the filesystem.
The file entries are indexed by the user or project identifier
to determine the block and offset.
Each quota entry has the following fields:
-.br
-\f3magic\f1: magic number, 0x4451 ('DQ')
-.br
-\f3version\f1: version number, currently 1
-.br
-\f3flags\f1: flags, values include
-0x01 for user quota,
-0x02 for project quota
-.br
-\f3id\f1: user or project identifier
-.br
-\f3blk_hardlimit\f1: absolute limit on blocks in use
-.br
-\f3blk_softlimit\f1: preferred limit on blocks in use
-.br
-\f3ino_hardlimit\f1: absolute limit on inodes in use
-.br
-\f3ino_softlimit\f1: preferred limit on inodes in use
-.br
-\f3bcount\f1: blocks actually in use
-.br
-\f3icount\f1: inodes actually in use
-.br
-\f3itimer\f1: time when service will be refused if soft limit is violated
-for inodes
-.br
-\f3btimer\f1: time when service will be refused if soft limit is violated
-for blocks
-.br
-\f3iwarns\f1: number of warnings issued about inode limit violations
-.br
-\f3bwarns\f1: number of warnings issued about block limit violations
-.br
-\f3rtb_hardlimit\f1: absolute limit on realtime blocks in use
-.br
-\f3rtb_softlimit\f1: preferred limit on realtime blocks in use
-.br
-\f3rtbcount\f1: realtime blocks actually in use
-.br
-\f3rtbtimer\f1: time when service will be refused if soft limit is violated
-for realtime blocks
-.br
-\f3rtbwarns\f1: number of warnings issued about realtime block limit violations
+.RS 1.4i
+.PD 0
+.TP 1.5i
+.B magic
+magic number, 0x4451 ('DQ').
+.TP
+.B version
+version number, currently 1.
+.TP
+.B flags
+flags, values include 0x01 for user quota, 0x02 for project quota.
+.TP
+.B id
+user or project identifier.
+.TP
+.B blk_hardlimit
+absolute limit on blocks in use.
+.TP
+.B blk_softlimit
+preferred limit on blocks in use.
+.TP
+.B ino_hardlimit
+absolute limit on inodes in use.
+.TP
+.B ino_softlimit
+preferred limit on inodes in use.
+.TP
+.B bcount
+blocks actually in use.
+.TP
+.B icount
+inodes actually in use.
+.TP
+.B itimer
+time when service will be refused if soft limit is violated for inodes.
+.TP
+.B btimer
+time when service will be refused if soft limit is violated for blocks.
+.TP
+.B iwarns
+number of warnings issued about inode limit violations.
+.TP
+.B bwarns
+number of warnings issued about block limit violations.
+.TP
+.B rtb_hardlimit
+absolute limit on realtime blocks in use.
+.TP
+.B rtb_softlimit
+preferred limit on realtime blocks in use.
+.TP
+.B rtbcount
+realtime blocks actually in use.
.TP
-\f3inobt\f1
-There is one set of filesystem blocks forming the inode allocation
-Btree for each allocation group.
-The root block of this Btree is designated by the \f3root\f1 field in the
-coresponding AGI block.
+.B rtbtimer
+time when service will be refused if soft limit is violated for realtime blocks.
+.TP
+.B rtbwarns
+number of warnings issued about realtime block limit violations.
+.PD
+.RE
+.TP
+.B inobt
+There is one set of filesystem blocks forming the inode allocation Btree for
+each allocation group. The root block of this Btree is designated by the
+.B root
+field in the coresponding AGI block.
The blocks are linked to sibling left and right blocks at each level,
as well as by pointers from parent to child blocks.
Each block has the following fields:
-.br
-\f3magic\f1: INOBT block magic number, 0x49414254 ('IABT')
-.br
-\f3level\f1: level number of this block, 0 is a leaf
-.br
-\f3numrecs\f1: number of data entries in the block
-.br
-\f3leftsib\f1: left (logically lower) sibling block, 0 if none
-.br
-\f3rightsib\f1: right (logically higher) sibling block, 0 if none
-.br
-\f3recs\f1: [leaf blocks only] array of inode records.
-Each record contains
-\f3startino\f1 allocation-group relative inode number,
-\f3freecount\f1 count of free inodes in this chunk,
-and \f3free\f1 bitmap, LSB corresponds to inode 0
-.br
-\f3keys\f1: [nonleaf blocks only] array of key records.
-These are the first value of each block in the level below this one.
-Each record contains
-\f3startino\f1
-.br
-\f3ptrs\f1: [nonleaf blocks only] array of child block pointers.
-Each pointer is a block number within the allocation group to the next level
-in the Btree
-.TP
-\f3inode\f1
-Inodes are allocated in ``chunks'' of 64 inodes each.
-Usually a chunk is multiple filesystem blocks, although there are cases
-with large filesystem blocks where a chunk is less than one block.
-The inode Btree (see \f3inobt\f1 above)
-refers to the inode numbers per allocation group.
-The inode numbers directly reflect the location of the inode block on disk.
-Use the \f3inode\f1 command to point \f2xfs_db\f1 to a specific inode.
-Each inode contains four regions:
-\f3core\f1,
-\f3next_unlinked\f1,
-\f3u\f1,
-and \f3a\f1.
-\f3core\f1 contains the fixed information.
-\f3next_unlinked\f1 is separated from the core due to
-journaling considerations, see type \f3agi\f1 field \f3unlinked\f1.
-\f3u\f1 is a union structure that is different in size and format depending
-on the type and representation of the file data (``data fork'').
-\f3a\f1 is an optional union structure to describe attribute data,
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magic
+INOBT block magic number, 0x49414254 ('IABT').
+.TP
+.B level
+level number of this block, 0 is a leaf.
+.TP
+.B numrecs
+number of data entries in the block.
+.TP
+.B leftsib
+left (logically lower) sibling block, 0 if none.
+.TP
+.B rightsib
+right (logically higher) sibling block, 0 if none.
+.TP
+.B recs
+[leaf blocks only] array of inode records. Each record contains
+.B startino
+allocation-group relative inode number,
+.B freecount
+count of free inodes in this chunk, and
+.B free
+bitmap, LSB corresponds to inode 0.
+.TP
+.B keys
+[nonleaf blocks only] array of key records. These are the first value of each
+block in the level below this one. Each record contains
+.BR startino .
+.TP
+.B ptrs
+[nonleaf blocks only] array of child block pointers. Each pointer is a
+block number within the allocation group to the next level in the Btree.
+.PD
+.RE
+.TP
+.B inode
+Inodes are allocated in "chunks" of 64 inodes each. Usually a chunk is
+multiple filesystem blocks, although there are cases with large filesystem
+blocks where a chunk is less than one block. The inode Btree (see
+.B inobt
+above) refers to the inode numbers per allocation group. The inode numbers
+directly reflect the location of the inode block on disk. Use the
+.B inode
+command to point
+.B xfs_db
+to a specific inode. Each inode contains four regions:
+.BR core ,
+.BR next_unlinked ,
+.BR u ", and "
+.BR a .
+.B core
+contains the fixed information.
+.B next_unlinked
+is separated from the core due to journaling considerations, see type
+.B agi
+field
+.BR unlinked .
+.B u
+is a union structure that is different in size and format depending
+on the type and representation of the file data ("data fork").
+.B a
+is an optional union structure to describe attribute data,
that is different in size, format, and location depending on the presence
-and representation of attribute data, and the size of the \f3u\f1 data
-(``attribute fork'').
-\f2xfs_db\f1 automatically selects the proper union members based on
-information in the inode.
-.br
+and representation of attribute data, and the size of the
+.B u
+data ("attribute fork").
+.B xfs_db
+automatically selects the proper union members based on information
+in the inode.
+.IP
The following are fields in the inode core:
-.br
-\f3magic\f1: inode magic number, 0x494e ('IN')
-.br
-\f3mode\f1: mode and type of file, as described in \f3chmod\f1(2),
-\f3mknod\f1(2), and \f3stat\f1(2)
-.br
-\f3version\f1: inode version, 1 or 2
-.br
-\f3format\f1: format of \f3u\f1 union data
-(0: xfs_dev_t,
-1: local file \- in-inode directory or symlink,
-2: extent list,
-3: Btree root,
-4: unique id [unused])
-.br
-\f3nlinkv1\f1: number of links to the file in a version 1 inode
-.br
-\f3nlinkv2\f1: number of links to the file in a version 2 inode
-.br
-\f3projid\f1: owner's project id (version 2 inode only)
-.br
-\f3uid\f1: owner's user id
-.br
-\f3gid\f1: owner's group id
-.br
-\f3atime\f1: time last accessed (seconds and nanoseconds)
-.br
-\f3mtime\f1: time last modified
-.br
-\f3ctime\f1: time created or inode last modified
-.br
-\f3size\f1: number of bytes in the file
-.br
-\f3nblocks\f1: total number of blocks in the file including
-indirect and attribute
-.br
-\f3extsize\f1: basic/minimum extent size for the file
-.br
-\f3nextents\f1: number of extents in the data fork
-.br
-\f3naextents\f1: number of extents in the attribute fork
-.br
-\f3forkoff\f1: attribute fork offset in the inode,
-in 64-bit words from the start of \f3u\f1
-.br
-\f3aformat\f1: format of \f3a\f1 data
-(1: local attribute data,
-2: extent list,
-3: Btree root)
-.br
-\f3dmevmask\f1: DMAPI event mask
-.br
-\f3dmstate\f1: DMAPI state information
-.br
-\f3newrtbm\f1: file is the realtime bitmap and is ``new'' format
-.br
-\f3prealloc\f1: file has preallocated data space after EOF
-.br
-\f3realtime\f1: file data is in the realtime subvolume
-.br
-\f3gen\f1: inode generation number
-.sp
-The following fields are in the \f3u\f1 data fork union:
-.br
-\f3bmbt\f1: bmap Btree root.
-This looks like a \f3bmapbtd\f1 block with redundant information removed
-.br
-\f3bmx\f1: array of extent descriptors
-.br
-\f3dev\f1: dev_t for the block or character device
-.br
-\f3sfdir\f1: shortform (in-inode) version 1 directory.
-This consists of
-a \f3hdr\f1 containing
-the \f3parent\f1 inode number
-and a \f3count\f1 of active entries in the directory,
-followed by
-an array \f3list\f1 of \f3hdr\f1.\f3count\f1 entries.
-Each such entry contains
-\f3inumber\f1,
-\f3namelen\f1,
-and \f3name\f1 string
-.br
-\f3sfdir2\f1: shortform (in-inode) version 2 directory.
-This consists of
-a \f3hdr\f1 containing
-a \f3count\f1 of active entries in the directory,
-an \f3i8count\f1 of entries with inumbers that don't fit in a 32-bit value,
-and the \f3parent\f1 inode number,
-followed by
-an array \f3list\f1 of \f3hdr\f1.\f3count\f1 entries.
-Each such entry contains
-\f3namelen\f1,
-a saved \f3offset\f1 used when the directory is converted to a larger form,
-a \f3name\f1 string,
-and the \f3inumber\f1
-.br
-\f3symlink\f1: symbolic link string value
-.sp
-The following fields are in the \f3a\f1 attribute fork union if it exists:
-.br
-\f3bmbt\f1: bmap Btree root, as above
-.br
-\f3bmx\f1: array of extent descriptors
-.br
-\f3sfattr\f1: shortform (in-inode) attribute values.
-This consists of
-a \f3hdr\f1 containing
-a \f3totsize\f1 (total size in bytes)
-and a \f3count\f1 of active entries,
-followed by
-an array \f3list\f1 of \f3hdr\f1.\f3count\f1 entries.
-Each such entry contains
-\f3namelen\f1,
-\f3valuelen\f1,
-\f3root\f1 flag,
-\f3name\f1,
-and \f3value\f1
-.TP
-\f3log\f1
-Log blocks contain the journal entries for XFS.
-It's not useful to examine these with \f2xfs_db\f1,
-use \f2xfs_logprint\f1(8) instead.
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magic
+inode magic number, 0x494e ('IN').
.TP
-\f3rtbitmap\f1
-If the filesystem has a realtime subvolume, then the \f3rbmino\f1 field
-in the superblock refers to a file that contains the realtime bitmap.
+.B mode
+mode and type of file, as described in
+.BR chmod (2),
+.BR mknod (2),
+and
+.BR stat (2).
+.TP
+.B version
+inode version, 1 or 2.
+.TP
+.B format
+format of
+.B u
+union data (0: xfs_dev_t, 1: local file \- in-inode directory or symlink,
+2: extent list, 3: Btree root, 4: unique id [unused]).
+.TP
+.B nlinkv1
+number of links to the file in a version 1 inode.
+.TP
+.B nlinkv2
+number of links to the file in a version 2 inode.
+.TP
+.B projid
+owner's project id (version 2 inode only).
+.TP
+.B uid
+owner's user id.
+.TP
+.B gid
+owner's group id.
+.TP
+.B atime
+time last accessed (seconds and nanoseconds).
+.TP
+.B mtime
+time last modified.
+.TP
+.B ctime
+time created or inode last modified.
+.TP
+.B size
+number of bytes in the file.
+.TP
+.B nblocks
+total number of blocks in the file including indirect and attribute.
+.TP
+.B extsize
+basic/minimum extent size for the file.
+.TP
+.B nextents
+number of extents in the data fork.
+.TP
+.B naextents
+number of extents in the attribute fork.
+.TP
+.B forkoff
+attribute fork offset in the inode, in 64-bit words from the start of
+.BR u .
+.TP
+.B aformat
+format of
+.B a
+data (1: local attribute data, 2: extent list, 3: Btree root).
+.TP
+.B dmevmask
+DMAPI event mask.
+.TP
+.B dmstate
+DMAPI state information.
+.TP
+.B newrtbm
+file is the realtime bitmap and is "new" format.
+.TP
+.B prealloc
+file has preallocated data space after EOF.
+.TP
+.B realtime
+file data is in the realtime subvolume.
+.TP
+.B gen
+inode generation number.
+.RE
+.IP
+
+The following fields are in the
+.B u
+data fork union:
+.RS 1.4i
+.TP 1.2i
+.B bmbt
+bmap Btree root. This looks like a
+.B bmapbtd
+block with redundant information removed.
+.TP
+.B bmx
+array of extent descriptors.
+.TP
+.B dev
+dev_t for the block or character device.
+.TP
+.B sfdir
+shortform (in-inode) version 1 directory. This consists of a
+.B hdr
+containing the
+.B parent
+inode number and a
+.B count
+of active entries in the directory, followed by an array
+.B list
+of
+.B hdr.count
+entries. Each such entry contains
+.BR inumber ,
+.BR namelen ,
+and
+.B name
+string.
+.TP
+.B sfdir2
+shortform (in-inode) version 2 directory. This consists of a
+.B hdr
+containing a
+.B count
+of active entries in the directory, an
+.B i8count
+of entries with inumbers that don't fit in a 32-bit value, and the
+.B parent
+inode number, followed by an array
+.B list
+of
+.B hdr.count
+entries. Each such entry contains
+.BR namelen ,
+a saved
+.B offset
+used when the directory is converted to a larger form, a
+.B name
+string, and the
+.BR inumber .
+.TP
+.B symlink
+symbolic link string value.
+.RE
+.IP
+
+The following fields are in the
+.B a
+attribute fork union if it exists:
+.RS 1.4i
+.TP 1.2i
+.B bmbt
+bmap Btree root, as above.
+.TP
+.B bmx
+array of extent descriptors.
+.TP
+.B sfattr
+shortform (in-inode) attribute values. This consists of a
+.B hdr
+containing a
+.B totsize
+(total size in bytes) and a
+.B count
+of active entries, followed by an array
+.B list
+of
+.B hdr.count
+entries. Each such entry contains
+.BR namelen ,
+.BR valuelen ,
+.BR root
+flag,
+.BR name ,
+and
+.BR value .
+.PD
+.RE
+.TP
+.B log
+Log blocks contain the journal entries for XFS.
+It's not useful to examine these with
+.BR xfs_db ,
+use
+.BR xfs_logprint (8)
+instead.
+.TP
+.B rtbitmap
+If the filesystem has a realtime subvolume, then the
+.B rbmino
+field in the superblock refers to a file that contains the realtime bitmap.
Each bit in the bitmap file controls the allocation of a single realtime extent
-(set == free).
-The bitmap is processed in 32-bit words,
-the LSB of a word is used for the first extent controlled by that bitmap word.
-The \f3atime\f1 field of the realtime bitmap inode contains a counter
+(set == free). The bitmap is processed in 32-bit words, the LSB of a word is
+used for the first extent controlled by that bitmap word. The
+.B atime
+field of the realtime bitmap inode contains a counter
that is used to control where the next new realtime file will start.
.TP
-\f3rtsummary\f1
-If the filesystem has a realtime subvolume,
-then the \f3rsumino\f1 field in the superblock refers to a file
-that contains the realtime summary data.
-The summary file contains a two-dimensional array of 16-bit values.
+.B rtsummary
+If the filesystem has a realtime subvolume, then the
+.B rsumino
+field in the superblock refers to a file that contains the realtime summary
+data. The summary file contains a two-dimensional array of 16-bit values.
Each value counts the number of free extent runs
(consecutive free realtime extents)
of a given range of sizes that starts in a given bitmap block.
the second dimension is the starting bitmap block number
(adjacent entries are for the same size, adjacent bitmap blocks).
.TP
-\f3sb\f1
+.B sb
There is one sb (superblock) structure per allocation group.
It is the first disk block in the allocation group.
Only the first one (block 0 of the filesystem) is actually used;
-the other blocks are redundant information for \f2xfs_repair\f1(8)
-to use if the first superblock is damaged.
-Fields defined:
-.br
-\f3magicnum\f1: superblock magic number, 0x58465342 ('XFSB')
-.br
-\f3blocksize\f1: filesystem block size in bytes
-.br
-\f3dblocks\f1: number of filesystem blocks present in the data subvolume
-.br
-\f3rblocks\f1: number of filesystem blocks present in the realtime subvolume
-.br
-\f3rextents\f1: number of realtime extents that \f3rblocks\f1 contain
-.br
-\f3uuid\f1: unique identifier of the filesystem
-.br
-\f3logstart\f1: starting filesystem block number of the log (journal).
-If this value is 0 the log is ``external''
-.br
-\f3rootino\f1: root inode number
-.br
-\f3rbmino\f1: realtime bitmap inode number
-.br
-\f3rsumino\f1: realtime summary data inode number
-.br
-\f3rextsize\f1: realtime extent size in filesystem blocks
-.br
-\f3agblocks\f1: size of an allocation group in filesystem blocks
-.br
-\f3agcount\f1: number of allocation groups
-.br
-\f3rbmblocks\f1: number of realtime bitmap blocks
-.br
-\f3logblocks\f1: number of log blocks (filesystem blocks)
-.br
-\f3versionnum\f1: filesystem version information.
+the other blocks are redundant information for
+.BR xfs_repair (8)
+to use if the first superblock is damaged. Fields defined:
+.RS 1.4i
+.PD 0
+.TP 1.2i
+.B magicnum
+superblock magic number, 0x58465342 ('XFSB').
+.TP
+.B blocksize
+filesystem block size in bytes.
+.TP
+.B dblocks
+number of filesystem blocks present in the data subvolume.
+.TP
+.B rblocks
+number of filesystem blocks present in the realtime subvolume.
+.TP
+.B rextents
+number of realtime extents that
+.B rblocks
+contain.
+.TP
+.B uuid
+unique identifier of the filesystem.
+.TP
+.B logstart
+starting filesystem block number of the log (journal).
+If this value is 0 the log is "external".
+.TP
+.B rootino
+root inode number.
+.TP
+.B rbmino
+realtime bitmap inode number.
+.TP
+.B rsumino
+realtime summary data inode number.
+.TP
+.B rextsize
+realtime extent size in filesystem blocks.
+.TP
+.B agblocks
+size of an allocation group in filesystem blocks.
+.TP
+.B agcount
+number of allocation groups.
+.TP
+.B rbmblocks
+number of realtime bitmap blocks.
+.TP
+.B logblocks
+number of log blocks (filesystem blocks).
+.TP
+.B versionnum
+filesystem version information.
This value is currently 1, 2, 3, or 4 in the low 4 bits.
If the low bits are 4 then the other bits have additional meanings.
1 is the original value.
0x0040: quotas were used,
0x0080: inode cluster alignment is in force,
0x0100: data stripe alignment is in force,
-0x0200: the \f3shared_vn\f1 field is used,
+0x0200: the
+.B shared_vn
+field is used,
0x1000: unwritten extent tracking is on,
-0x2000: version 2 directories are in use)
-.br
-\f3sectsize\f1: sector size in bytes, currently always 512.
-This is the size of the superblock and the other header blocks
-.br
-\f3inodesize\f1: inode size in bytes
-.br
-\f3inopblock\f1: number of inodes per filesystem block
-.br
-\f3fname\f1: obsolete, filesystem name
-.br
-\f3fpack\f1: obsolete, filesystem pack name
-.br
-\f3blocklog\f1: log2 of \f3blocksize\f1
-.br
-\f3sectlog\f1: log2 of \f3sectsize\f1
-.br
-\f3inodelog\f1: log2 of \f3inodesize\f1
-.br
-\f3inopblog\f1: log2 of \f3inopblock\f1
-.br
-\f3agblklog\f1: log2 of \f3agblocks\f1 (rounded up)
-.br
-\f3rextslog\f1: log2 of \f3rextents\f1
-.br
-\f3inprogress\f1: \f2mkfs.xfs\f1(8) aborted before completing this filesystem
-.br
-\f3imax_pct\f1: maximum percentage of filesystem space used for inode blocks
-.br
-\f3icount\f1: number of allocated inodes
-.br
-\f3ifree\f1: number of allocated inodes that are not in use
-.br
-\f3fdblocks\f1: number of free data blocks
-.br
-\f3frextents\f1: number of free realtime extents
-.br
-\f3uquotino\f1: user quota inode number
-.br
-\f3pquotino\f1: project quota inode number; this is currently unused
-.br
-\f3qflags\f1: quota status flags
+0x2000: version 2 directories are in use).
+.TP
+.B sectsize
+sector size in bytes, currently always 512.
+This is the size of the superblock and the other header blocks.
+.TP
+.B inodesize
+inode size in bytes.
+.TP
+.B inopblock
+number of inodes per filesystem block.
+.TP
+.B fname
+obsolete, filesystem name.
+.TP
+.B fpack
+obsolete, filesystem pack name.
+.TP
+.B blocklog
+log2 of
+.BR blocksize .
+.TP
+.B sectlog
+log2 of
+.BR sectsize .
+.TP
+.B inodelog
+log2 of
+.BR inodesize .
+.TP
+.B inopblog
+log2 of
+.BR inopblock .
+.TP
+.B agblklog
+log2 of
+.B agblocks
+(rounded up).
+.TP
+.B rextslog
+log2 of
+.BR rextents .
+.TP
+.B inprogress
+.BR mkfs.xfs (8)
+or
+.BR xfs_copy (8)
+aborted before completing this filesystem.
+.TP
+.B imax_pct
+maximum percentage of filesystem space used for inode blocks.
+.TP
+.B icount
+number of allocated inodes.
+.TP
+.B ifree
+number of allocated inodes that are not in use.
+.TP
+.B fdblocks
+number of free data blocks.
+.TP
+.B frextents
+number of free realtime extents.
+.TP
+.B uquotino
+user quota inode number.
+.TP
+.B pquotino
+project quota inode number; this is currently unused.
+.TP
+.B qflags
+quota status flags
(0x01: user quota accounting is on,
0x02: user quota limits are enforced,
0x04: quotacheck has been run on user quotas,
0x08: project quota accounting is on,
0x10: project quota limits are enforced,
-0x20: quotacheck has been run on project quotas)
-.br
-\f3flags\f1: random flags.
-0x01: only read-only mounts are allowed
-.br
-\f3shared_vn\f1: shared version number (shared readonly filesystems)
-.br
-\f3inoalignmt\f1: inode chunk alignment in filesystem blocks
-.br
-\f3unit\f1: stripe or RAID unit
-.br
-\f3width\f1: stripe or RAID width
-.br
-\f3dirblklog\f1: log2 of directory block size (filesystem blocks)
+0x20: quotacheck has been run on project quotas).
+.TP
+.B flags
+random flags. 0x01: only read-only mounts are allowed.
+.TP
+.B shared_vn
+shared version number (shared readonly filesystems).
+.TP
+.B inoalignmt
+inode chunk alignment in filesystem blocks.
+.TP
+.B unit
+stripe or RAID unit.
+.TP
+.B width
+stripe or RAID width.
+.TP
+.B dirblklog
+log2 of directory block size (filesystem blocks).
+.PD
+.RE
.TP
-\f3symlink\f1
+.B symlink
Symbolic link blocks are used only when the symbolic link value does
-not fit inside the inode.
-The block content is just the string value.
+not fit inside the inode. The block content is just the string value.
Bytes past the logical end of the symbolic link value have arbitrary values.
.TP
-\f3text\f1
+.B text
User file blocks, and other blocks whose type is unknown,
-have this type for display purposes in \f2xfs_db\f1.
+have this type for display purposes in
+.BR xfs_db .
The block data is displayed in two columns: Hexadecimal format
and printable ASCII chars.
.SH DIAGNOSTICS
-Many messages can come from the \f3check\f1 (\f3blockget\f1) command;
-these are documented in \f2xfs_check\f1(8).
+Many messages can come from the
+.B check
+.RB ( blockget )
+command; these are documented in
+.BR xfs_check (8).
.SH SEE ALSO
-mkfs.xfs(8),
-xfs_admin(8),
-xfs_check(8),
-xfs_copy(8),
-xfs_logprint(8),
-xfs_metadump(8),
-xfs_ncheck(8),
-xfs_repair(8),
-mount(8),
-chmod(2),
-mknod(2),
-stat(2),
-xfs(5).
+.BR mkfs.xfs (8),
+.BR xfs_admin (8),
+.BR xfs_check (8),
+.BR xfs_copy (8),
+.BR xfs_logprint (8),
+.BR xfs_metadump (8),
+.BR xfs_ncheck (8),
+.BR xfs_repair (8),
+.BR mount (8),
+.BR chmod (2),
+.BR mknod (2),
+.BR stat (2),
+.BR xfs (5).
.SH NAME
xfs_freeze \- suspend access to an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3xfs_freeze\f1 [ \f3\-fu\f1 ] mount-point
+.B xfs_freeze \-f
+|
+.B \-u
+.I mount-point
.fi
.SH DESCRIPTION
-.I xfs_freeze
+.B xfs_freeze
suspends and resumes access to an XFS filesystem (see
-.IR xfs (5)).
+.BR xfs (5)).
.PP
-.I xfs_freeze
+.B xfs_freeze
halts new access to the filesystem and creates a stable image on disk.
-.I xfs_freeze
+.B xfs_freeze
is intended to be used with volume managers and hardware RAID devices
that support the creation of snapshots.
.PP
argument is the pathname of the directory where the filesystem
is mounted.
The filesystem must be mounted to be frozen (see
-.IR mount (8)).
+.BR mount (8)).
.PP
-The \f3\-f\f1 flag requests the specified XFS filesystem to be
+The
+.B \-f
+flag requests the specified XFS filesystem to be
frozen from new modifications.
When this is selected, all ongoing transactions in the filesystem
are allowed to complete, new write system calls are halted, other
-calls which modify the filesystem are halted, and all dirty data,
+calls which modify the filesystem are halted, and all dirty data,
metadata, and log information are written to disk.
Any process attempting to write to the frozen filesystem will block
waiting for the filesystem to be unfrozen.
These files will not be unlinked until the filesystem is unfrozen
or a clean mount of the snapshot is complete.
.PP
-The \f3\-u\f1 option is used to un-freeze the filesystem and allow
+The
+.B \-u
+flagq is used to un-freeze the filesystem and allow
operations to continue.
Any filesystem modifications that were blocked by the freeze are
unblocked and allowed to complete.
.PP
-One of \f3\-f\f1 or \f3\-u\f1 must be supplied to
-.IR xfs_freeze .
+One of
+.B \-f
+or
+.B \-u
+must be supplied to
+.BR xfs_freeze .
.SH NOTES
A copy of a frozen XFS filesystem will usually have the same universally
unique identifier (UUID) as the original, and thus may be prevented from
being mounted.
-The XFS \f3nouuid\f1 mount option can be used to circumvent this issue.
+The XFS
+.B nouuid
+mount option can be used to circumvent this issue.
.SH SEE ALSO
-xfs(5),
-lvm(8),
-mount(8).
+.BR xfs (5),
+.BR lvm (8),
+.BR mount (8).
.SH NAME
xfs_growfs, xfs_info \- expand an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3xfs_growfs\f1 [ \f3\-dilnrxV\f1 ] [ \f3\-D\f1 size ] [ \f3\-e\f1 rtextsize ]
- [ \f3\-L\f1 size ] [ \f3\-m\f1 maxpct ] [ \f3-t\f1 mtab ]
- [ \f3\-R\f1 size ] mount-point
-\f3xfs_info\f1 [ \f3-t\f1 mtab ] mount-point
-.fi
+.B xfs_growfs
+[
+.B \-dilnrxV
+] [
+.B \-D
+.I size
+] [
+.B \-e
+.I rtextsize
+] [
+.B \-L
+.I size
+] [
+.B \-m
+.I maxpct
+] [
+.B \-t
+.I mtab
+] [
+.B \-R
+.I size
+]
+.I mount-point
+.br
+.B xfs_info
+[
+.B \-t
+.I mtab
+]
+.I mount-point
.SH DESCRIPTION
-.I xfs_growfs
+.B xfs_growfs
expands an existing XFS filesystem (see
-.IR xfs (5)).
+.BR xfs (5)).
The
.I mount-point
argument is the pathname of the directory where the filesystem
-is mounted.
-The filesystem must be mounted to be grown (see
-.IR mount (8)).
+is mounted. The filesystem must be mounted to be grown (see
+.BR mount (8)).
The existing contents of the filesystem are undisturbed, and the added space
becomes available for additional file storage.
.PP
-.I xfs_info
+.B xfs_info
is equivalent to invoking
-.I xfs_growfs
+.B xfs_growfs
with the
.B \-n
option (see discussion below).
-.PP
-The options to
-.I xfs_growfs
-are:
+.SH OPTIONS
.TP
-\f3\-d\f1, \f3\-D\f1 \f2size\f1
-Specifies that the data section of the filesystem should be grown.
-If the
+.BI "\-d | \-D " size
+Specifies that the data section of the filesystem should be grown. If the
.B \-D
.I size
-option is given, the data section is grown to that size, otherwise
-the data section is grown to the largest size possible.
-The size
-is expressed in
-filesystem blocks.
+option is given, the data section is grown to that
+.IR size ,
+otherwise the data section is grown to the largest size possible with the
+.B \-d
+option. The size is expressed in filesystem blocks.
.TP
.B \-e
-Allows the real-time extent size to be specified.
-In
-.IR mkfs.xfs (8)
+Allows the real-time extent size to be specified. In
+.BR mkfs.xfs (8)
this is specified with
-.B \-r
-.BI extsize= nnnn.
+.B \-r extsize=\c
+.IR nnnn .
.TP
.B \-i
-The new log is an internal log
-(inside the data section).
-.B "[NOTE: This option is not implemented]"
+The new log is an internal log (inside the data section).
+.B [NOTE: This option is not implemented]
.TP
-\f3\-l\f1, \f3\-L\f1 \f2size\f1
+.BI "\-l | \-L " size
Specifies that the log section of the filesystem should be grown,
-shrunk, or moved.
-If the
+shrunk, or moved. If the
.B \-L
.I size
-option is given, the log section is changed to be that size,
-if possible.
-The size is expressed in
-filesystem blocks.
+option is given, the log section is changed to be that
+.IR size ,
+if possible. The size is expressed in filesystem blocks.
The size of an internal log must be smaller than the size
-of an allocation group (this value is printed at \f2mkfs\f1(8) time).
-If neither
+of an allocation group (this value is printed at
+.BR mkfs (8)
+time). If neither
.B \-i
nor
.B \-x
is given with
.BR \-l ,
the log continues to be internal or external as it was before.
-.B "[NOTE: These options are not implemented]"
+.B [NOTE: These options are not implemented]
.TP
.B \-m
Specify a new value for the maximum percentage
-of space in the filesystem that can be allocated as inodes.
-In
-.I mkfs.xfs
+of space in the filesystem that can be allocated as inodes. In
+.BR mkfs.xfs (8)
this is specified with
-.B -i
-.BI maxpct= nn.
+.B -i maxpct=\c
+.IR nn .
.TP
.B \-n
Specifies that no change to the filesystem is to be made.
The filesystem geometry is printed, and argument checking is performed,
but no growth occurs.
.TP
-\f3\-r\f1, \f3\-R\f1 \f2size\f1
-Specifies that the real-time section of the filesystem should be grown.
-If the
+.BI "\-r | \-R " size
+Specifies that the real-time section of the filesystem should be grown. If the
.B \-R
.I size
option is given, the real-time section is grown to that size, otherwise
-the real-time section is grown to the largest size possible.
-The size
-is expressed in
-filesystem blocks.
+the real-time section is grown to the largest size possible with the
+.B \-r
+option. The size is expressed in filesystem blocks.
The filesystem does not need to have contained a real-time section before
-the \f2xfs_growfs\f1 operation.
+the
+.B xfs_growfs
+operation.
.TP
.B \-t
Specifies an alternate mount table file (default is
file - refer to
.BR mount (8)
for further details.
+.TP
+.B \-V
+Prints the version number and exits. The
+.I mount-point
+argument is not required with
+.BR \-V .
.PP
-.I xfs_growfs
+.B xfs_growfs
is most often used in conjunction with
logical volumes
(see
-.IR md (4)
+.BR md (4)
and
-.IR lvm (8)
+.BR lvm (8)
on Linux).
However, it can also be used on a regular disk partition, for example if a
partition has been enlarged while retaining the same starting block.
.SH PRACTICAL USE
Filesystems normally occupy all of the space on the device where they
-reside.
-In order to grow a filesystem, it is necessary to provide added
-space for it to occupy.
-Therefore there must be at least one spare new disk partition available.
-Adding the space is often done through the use of a logical volume manager.
+reside. In order to grow a filesystem, it is necessary to provide added
+space for it to occupy. Therefore there must be at least one spare new
+disk partition available. Adding the space is often done through the use
+of a logical volume manager.
.SH SEE ALSO
-mkfs.xfs(8),
-md(4),
-lvm(8),
-mount(8).
+.BR mkfs.xfs (8),
+.BR md (4),
+.BR lvm (8),
+.BR mount (8).
.SH NAME
xfs_io \- debug the I/O path of an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3xfs_io\f1 [ \f3\-c\f1 cmd ] ... [ \f3\-p\f1 prog ] [ \f3\-adFfmrRstx\f1 ] file
-.fi
+.B xfs_io
+[
+.B \-adFfmrRstx
+] [
+.B \-c
+.I cmd
+] ... [
+.B \-p
+.I prog
+]
+.I file
.SH DESCRIPTION
-\f2xfs_io\f1 is a debugging tool like \f2xfs_db\f1, but is aimed
-at examining the regular file I/O paths rather than the raw XFS volume
-itself.
+.B xfs_io
+is a debugging tool like
+.BR xfs_db (8),
+but is aimed at examining the regular file I/O paths rather than the
+raw XFS volume itself.
These code paths include not only the obvious read/write/mmap interfaces
for manipulating files, but also cover all of the XFS extensions (such
as space preallocation, additional inode flags, etc).
-.PP
-The options to \f2xfs_io\f1 are:
-.TP 10
-\f3\-c\f1 \f2cmd\f1
-\f2xfs_io\f1 commands may be run interactively (the default)
-or as arguments on the command line.
-Multiple \f3\-c\f1 arguments may be given.
-The commands are run in the sequence given, then the program exits.
-.TP
-\f3\-p\f1 \f2prog\f1
+.SH OPTIONS
+.TP 1.0i
+.BI \-c " cmd"
+.B xfs_io
+commands may be run interactively (the default) or as arguments on
+the command line. Multiple
+.B \-c
+arguments may be given. The commands are run in the sequence given,
+then the program exits.
+.TP
+.BI \-p " prog"
Set the program name for prompts and some error messages,
-the default value is \f2xfs_io\f1.
+the default value is
+.BR xfs_io .
.TP
-\f3\-F\f1
-Allow \f2file\f1 to reside in non-XFS (foreign) filesystems.
+.B \-F
+Allow
+.I file
+to reside in non-XFS (foreign) filesystems.
This mode has a restricted set of commands.
.TP
-\f3\-f\f1
-Create \f2file\f1 if it does not already exist.
+.B \-f
+Create
+.I file
+if it does not already exist.
.TP
-\f3\-r\f1
-Open \f2file\f1 read-only, initially.
+.B \-r
+Open
+.I file
+read-only, initially.
.TP
-\f3\-x\f1
-Expert mode.
-Dangerous commands are only available in this mode.
+.B \-x
+Expert mode. Dangerous commands are only available in this mode.
These commands also tend to require additional privileges.
.PP
-The other \f2open\f1(2) options described below are also available
-from the command line.
+The other
+.BR open (2)
+options described below are also available from the command line.
.SH CONCEPTS
-\f2xfs_io\f1 maintains a number of open files and memory mappings.
+.B xfs_io
+maintains a number of open files and memory mappings.
Files can be initially opened on the command line (optionally),
and additional files can also be opened later.
.PP
-\f2xfs_io\f1 commands can be broken up into three groups.
+.B xfs_io
+commands can be broken up into three groups.
Some commands are aimed at doing regular file I/O - read, write,
sync, space preallocation, etc.
.PP
structures relating to the open files, mappings, and the filesystems
where they reside.
.PP
-Many commands have extensive online help.
-Use the \f3help\f1 command for more details on any command.
+Many commands have extensive online help. Use the
+.B help
+command for more details on any command.
.SH FILE I/O COMMANDS
.TP
-\f3file\f1 [ \f2N\f1 ]
+.BI "file [ " N " ]"
Display a list of all open files and (optionally) switch to an alternate
current open file.
-.TP 10
-\f3open\f1 [ \f2\-FacdfrstR\f1 ] [ \f2path\f1 ]
-Closes the current file, and opens the file specified by \f2path\f1 instead.
-Without any arguments, displays statistics about the current file \-
-see the \f3stat\f1 command.
-.br
-The \f3\-F\f1 option allows non-XFS (foreign) files to be opened and
+.TP
+.BI "open [[ \-FacdfrstR ] " path " ]"
+Closes the current file, and opens the file specified by
+.I path
+instead. Without any arguments, displays statistics about the current
+file \- see the
+.B stat
+command.
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.B \-F
+allows non-XFS (foreign) files to be opened and
operated on with a restricted command set.
-.br
-The \f3\-a\f1 option opens append-only (O_APPEND).
-.br
-The \f3\-d\f1 option opens for direct I/O (O_DIRECT).
-.br
-The \f3\-f\f1 option creates the file if it doesn't already exist (O_CREAT).
-.br
-The \f3\-r\f1 option opens read-only (O_RDONLY).
-.br
-The \f3\-s\f1 option opens for synchronous I/O (O_SYNC).
-.br
-The \f3\-t\f1 option truncates on open (O_TRUNC).
-.br
-The \f3\-R\f1 option marks the file as a realtime XFS file after
+.TP
+.B \-a
+opens append-only (O_APPEND).
+.TP
+.B \-d
+opens for direct I/O (O_DIRECT).
+.TP
+.B \-f
+creates the file if it doesn't already exist (O_CREAT).
+.TP
+.B \-r
+opens read-only (O_RDONLY).
+.TP
+.B \-s
+opens for synchronous I/O (O_SYNC).
+.TP
+.B \-t
+truncates on open (O_TRUNC).
+.TP
+.B \-R
+marks the file as a realtime XFS file after
opening it, if it is not already marked as such.
+.PD
+.RE
.TP
-\f3o\f1
-See the \f3open\f1 command.
+.B o
+See the
+.B open
+command.
.TP
-\f3close\f1
+.B close
Closes the current open file, marking the next open file as current
(if one exists).
.TP
-\f3c\f1
-See the \f3close\f1 command.
-.TP
-\f3pread\f1 [ \f2\-b bsize\f1 ] [ \f2\-v\f1 ] \f2offset\f1 \f2length\f1
-Reads a range of bytes in a specified blocksize from the given offset.
-.br
-The \f3\-b\f1 option can be used to set the blocksize into which the
-\f2read\f1(2) requests will be split.
-The default blocksize is 4096 bytes.
-.br
-The \f3\-v\f1 option will dump the contents of the buffer after reading,
+.B c
+See the
+.B close
+command.
+.TP
+.BI "pread [ \-b " bsize " ] [ \-v ] " "offset length"
+Reads a range of bytes in a specified blocksize from the given
+.IR offset .
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.B \-b
+can be used to set the blocksize into which the
+.BR read (2)
+requests will be split. The default blocksize is 4096 bytes.
+.TP
+.B \-v
+dump the contents of the buffer after reading,
by default only the count of bytes actually read is dumped.
+.PD
+.RE
.TP
-\f3r\f1
-See the \f3pread\f1 command.
+.B r
+See the
+.B pread
+command.
.TP
-\f3pwrite\f1 [ \f2\-i file\f1 ] [ \f2\-d\f1 ] [ \f2\-s skip\f1 ] [ \f2\-b size\f1 ] [ \f2\-S seed\f1 ] \f2offset\f1 \f2length\f1
-Writes a range of bytes in a specified blocksize from the given offset.
+.BI "pwrite [ \-i " file " ] [ \-d ] [ \-s " skip " ] [ \-b " size " ] [ \-S " seed " ] " "offset length"
+Writes a range of bytes in a specified blocksize from the given
+.IR offset .
The bytes written can be either a set pattern or read in from another
file before writing.
-.br
-The \f3\-i\f1 option allows an input file to be specified as the source
-of the data to be written.
-.br
-The \f3\-d\f1 option will cause direct I/O, rather than the usual buffered
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.B \-i
+allows an input
+.I file
+to be specified as the source of the data to be written.
+.TP
+.B \-d
+causes direct I/O, rather than the usual buffered
I/O, to be used when reading the input file.
-.br
-The \f3\-s\f1 options specifies the number of bytes to skip from the
-start of the input file before starting to read.
-.br
-The \f3\-b\f1 option can be used to set the blocksize into which the
-\f2write\f1(2) requests will be split.
-The default blocksize is 4096 bytes.
-The \f3\-S\f1 option is used to set the (repeated) fill pattern which
+.TP
+.B \-s
+specifies the number of bytes to
+.I skip
+from the start of the input file before starting to read.
+.TP
+.B \-b
+used to set the blocksize into which the
+.BR write (2)
+requests will be split. The default blocksize is 4096 bytes.
+.TP
+.B \-S
+used to set the (repeated) fill pattern which
is used when the data to write is not coming from a file.
The default buffer fill pattern value is 0xcdcdcdcd.
+.RE
+.PD
.TP
-\f3w\f1
-See the \f3pwrite\f1 command.
+.B w
+See the
+.B pwrite
+command.
.TP
-\f3bmap\f1 [ \f2\-adlpv\f1 ] [ \f2\-n nx\f1 ]
-Prints the block mapping for the current open file.
-Refer to the \f2xfs_bmap\f1 manual page for complete documentation.
+.BI "bmap [ \-adlpv ] [ \-n " nx " ]"
+Prints the block mapping for the current open file. Refer to the
+.BR xfs_bmap (8)
+manual page for complete documentation.
.TP
-\f3extsize\f1 [ \f2\-R\f1 | \f2\-D\f1 ] [ \f2value\f1 ]
+.BI "extsize [ \-R | \-D ] [ " value " ]"
Display and/or modify the preferred extent size used when allocating
-space for the currently open file.
-If the \f2-R\f1 option is specified, a recursive descent is performed
-for all directory entries below the currently open file (\f2-D\f1 can
-be used to restrict the output to directories only).
+space for 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).
If the target file is a directory, then the inherited extent size
is set for that directory (new files created in that directory
inherit that extent size).
-The \f2value\f1 should be specified in bytes, or using one of the
-usual units suffixes (k, m, g, b, etc).
-The extent size is always reported in units of bytes.
-.TP
-\f3allocsp\f1 \f2offset\f1 \f2length\f1
-Allocates zeroed space for part of a file using the XFS_IOC_ALLOCSP
-system call described in the \f2xfs\f1 manual page.
-.TP
-\f3freesp\f1 \f2offset\f1 \f2length\f1
-Frees space for part of a file using the XFS_IOC_FREESP
-system call described in the \f2xfs\f1 manual page.
-.TP
-\f3fadvise\f1 [ \f2\-dnrsw\f1 ]
+The
+.I value
+should be specified in bytes, or using one of the usual units suffixes
+(k, m, g, b, etc). The extent size is always reported in units of bytes.
+.TP
+.BI "allocsp " size " 0"
+Sets the size of the file to
+.I size
+and zeroes any additional space allocated using the
+XFS_IOC_ALLOCSP/XFS_IOC_FREESP system call described in the
+.BR xfsctl (3)
+manual page.
+.B allocsp
+and
+.B freesp
+do exactly the same thing.
+.TP
+.BI "freesp " size " 0"
+See the
+.B allocsp
+command.
+.TP
+.BI "fadvise [ \-r | \-s | [[ \-d | \-n | \-w ] " "offset length " ]]
On platforms which support it, allows hints be given to the system
regarding the expected I/O patterns on the file.
-The hints are similar to those of the \f3madvise\f1 command,
-discussed later.
-.TP
-\f3fdatasync\f1
-Calls \f2fdatasync\f1(2) to flush the file's in-core data to disk.
-.TP
-\f3fsync\f1
-Calls \f2fsync\f1(2) to flush all in-core file state to disk.
-.TP
-\f3s\f1
-See the \f3fsync\f1 command.
-.TP
-\f3resvsp\f1 \f2offset\f1 \f2length\f1
-Allocates reserved, unwritten space for part of a file using the XFS_IOC_RESVSP
-system call described in the \f2xfs\f1 manual page.
-.TP
-\f3unresvsp\f1 \f2offset\f1 \f2length\f1
+The range arguments are required by some advise commands ([*] below), and
+the others must have no range arguments.
+With no arguments, the POSIX_FADV_NORMAL advice is implied (default readahead).
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.B \-d
+the data will not be accessed again in the near future (POSIX_FADV_DONTNEED[*]).
+.TP
+.B \-n
+data will be accessed once and not be reused (POSIX_FADV_NOREUSE[*]).
+.TP
+.B \-r
+expect access to data in random order (POSIX_FADV_RANDOM), which sets readahead to zero.
+.TP
+.B \-s
+expect access to data in sequential order (POSIX_FADV_SEQUENTIAL),
+which doubles the default readahead on the file.
+.TP
+.B \-w
+advises the specified data will be needed again (POSIX_FADV_WILLNEED[*])
+which forces the maximum readahead.
+.RE
+.PD
+.TP
+.B fdatasync
+Calls
+.BR fdatasync (2)
+to flush the file's in-core data to disk.
+.TP
+.B fsync
+Calls
+.BR fsync (2)
+to flush all in-core file state to disk.
+.TP
+.B s
+See the
+.B fsync
+command.
+.TP
+.BI resvsp " offset length"
+Allocates reserved, unwritten space for part of a file using the
+XFS_IOC_RESVSP system call described in the
+.BR xfsctl (3)
+manual page.
+.TP
+.BI unresvsp " offset length"
Frees reserved space for part of a file using the XFS_IOC_UNRESVSP
-system call described in the \f2xfs\f1 manual page.
+system call described in the
+.BR xfsctl (3)
+manual page.
.TP
-\f3truncate\f1 \f2offset\f1
-Truncates the current file at the given offset using \f2ftruncate\f1(2).
+.BI truncate " offset"
+Truncates the current file at the given offset using
+.BR ftruncate (2).
.TP
-\f3sendfile\f1 \f2\-i infile\f1 | \f2\-f N\f1 [ \f2offset\f1 \f2length\f1 ]
+.BI "sendfile \-i " srcfile " | \-f " N " [ " "offset length " ]
On platforms which support it, allows a direct in-kernel copy between
-two file descriptors.
-The current open file is the target, the source must be specified as
-another open file (\f2-f\f1) or by path (\f2-i\f2).
+two file descriptors. The current open file is the target, the source
+must be specified as another open file
+.RB ( \-f )
+or by path
+.RB ( \-i ).
.SH MEMORY MAPPED I/O COMMANDS
.TP
-\f3mmap\f1 [ \f2-rwx\f1 ] [[ N ] | [ \f2offset\f1 \f2length\f1 ]]
-With no arguments, \f3mmap\f1 shows the current mappings.
-Specifying a single numeric argument sets the current mapping.
-If two arguments are specified (a range), a new mapping is created
-spanning the range, and the protection mode can be given as a combination of
-PROT_READ (\f2-r\f1), PROT_WRITE (\f2-w\f1), and PROT_EXEC (\f2-x\f1).
-.TP
-\f3mm\f1
-See the \f3mmap\f1 command.
-.TP
-\f3munmap\f1
+.BI "mmap [ " N " | [[ \-rwx ] " "offset length " ]]
+With no arguments,
+.B mmap
+shows the current mappings. Specifying a single numeric argument
+.I N
+sets the current mapping. If two arguments are specified (a range specified by
+.I offset
+and
+.IR length ),
+a new mapping is created spanning the range, and the protection mode can
+be given as a combination of PROT_READ
+.RB ( \-r ),
+PROT_WRITE
+.RB ( \-w ),
+and PROT_EXEC
+.RB ( \-x ).
+.TP
+.B mm
+See the
+.B mmap
+command.
+.TP
+.B munmap
Unmaps the current memory mapping.
.TP
-\f3mu\f1
-See the \f3munmap\f1 command.
+.B mu
+See the
+.B munmap
+command.
.TP
-\f3mread\f1 [ \-\f2frv\f1 ] [ \f2offset\f1 \f2length\f1 ]
+.BI "mread [ \-f | \-v ] [ \-r ] [" " offset length " ]
Accesses a segment of the current memory mapping, optionally dumping it to
-the standard output stream (with \f2-v\f1 or \f2-f\f1 option) for inspection.
-The accesses are performed sequentially from the start offset by default,
-but can also be done from the end backwards through the mapping if
-the \f2-r\f1 option in specified.
-The two verbose modes differ only in the relative offsets they display,
-the \f2-f\f1 option is relative to file start, whereas \f2-v\f1 shows
-offsets relative to the start of the mapping.
-.TP
-\f3mr\f1
-See the \f3mread\f1 command.
-.TP
-\f3mwrite\f1 [ \f2-r\f1 ] [ \f2-S seed\f1 ] [ \f2offset\f1 \f2length\f1 ]
+the standard output stream (with
+.B \-v
+or
+.B \-f
+option) for inspection. The accesses are performed sequentially from the start
+.I offset
+by default, but can also be done from the end backwards through the
+mapping if the
+.B \-r
+option in specified.
+The two verbose modes differ only in the relative offsets they display, the
+.B \-f
+option is relative to file start, whereas
+.B \-v
+shows offsets relative to the start of the mapping.
+.TP
+.B mr
+See the
+.B mread
+command.
+.TP
+.BI "mwrite [ \-r ] [ \-S " seed " ] [ " "offset length " ]
Stores a byte into memory for a range within a mapping.
The default stored value is 'X', repeated to fill the range specified,
-but this can be changed using the \f2-S\f1 option.
+but this can be changed using the
+.B \-S
+option.
The memory stores are performed sequentially from the start offset by default,
-but can also be done from the end backwards through the mapping if the \-\f2r\f1
+but can also be done from the end backwards through the mapping if the
+.B \-r
option in specified.
.TP
-\f3mw\f1
-See the \f3mwrite\f1 command.
+.B mw
+See the
+.B mwrite
+command.
.TP
-\f3msync\f1
+.BI "msync [ \-i ] [ \-a | \-s ] [ " "offset length " ]
Writes all modified copies of pages over the specified range (or entire
mapping if no range specified) to their backing storage locations.
-Also, optionally invalidates (\f2-i\f1) so that subsequent references to
-the pages will be obtained from their backing storage locations (instead
-of cached copies).
-The flush can be done synchronously (\f2-s\f1) or asynchronously (\f2-a\f1).
-.TP
-\f3ms\f1
-See the \f3msync\f1 command.
-.TP
-\f3madvise\f1 [ \-\f2drwsw\f1 ] [ \f2offset\f1 \f2length\f1 ]
+Also, optionally invalidates
+.RB ( \-i )
+so that subsequent references to the pages will be obtained from their
+backing storage locations (instead of cached copies).
+The flush can be done synchronously
+.RB ( \-s)
+or asynchronously
+.RB ( \-a ).
+.TP
+.B ms
+See the
+.B msync
+command.
+.TP
+.BI "madvise [ \-d | \-r | \-s | \-w ] [ " "offset length " ]
Modifies page cache behavior when operating on the current mapping.
The range arguments are required by some advise commands ([*] below).
With no arguments, the POSIX_MADV_NORMAL advice is implied (default readahead).
-The \f2-d\f1 option says the pages will not be needed (POSIX_MADV_DONTNEED[*]).
-The \f2-r\f1 option says to expect random page references (POSIX_MADV_RANDOM),
-which sets readahead to zero.
-The \f2-s\f1 option says to expect sequential page references
-(POSIX_MADV_SEQUENTIAL), which doubles the default readahead on the file.
-The \f2-w\f1 option advises the specified pages will be needed
-again (POSIX_MADV_WILLNEED[*]) which forces the maximum readahead.
-.TP
-\f3mincore\f1
+.RS 1.0i
+.PD 0
+.TP 0.4i
+.B \-d
+the pages will not be needed (POSIX_MADV_DONTNEED[*]).
+.TP
+.B \-r
+expect random page references (POSIX_MADV_RANDOM), which sets readahead to zero.
+.TP
+.B \-s
+expect sequential page references (POSIX_MADV_SEQUENTIAL),
+which doubles the default readahead on the file.
+.TP
+.B \-w
+advises the specified pages will be needed again (POSIX_MADV_WILLNEED[*])
+which forces the maximum readahead.
+.RE
+.PD
+.TP
+.B mincore
Dumps a list of pages or ranges of pages that are currently in core,
for the current memory mapping.
.SH OTHER COMMANDS
.TP
-\f3print\f1
+.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
-\f3p\f1
-See the \f3print\f1 command.
-.TP
-\f3quit\f1
-Exit \f2xfs_io\f1.
-.TP
-\f3q\f1
-See the \f3quit\f1 command.
-.TP
-\f3lsattr\f1 [ \f2\-R\f1 | \f2\-D\f1 | \f2\-a\f1 | \f2\-v\f1 ]
-List extended inode flags on the currently open file.
-If the \f2-R\f1 option is specified, a recursive descent is performed
-for all directory entries below the currently open file (\f2-D\f1 can
-be used to restrict the output to directories only).
+.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
-\f3chattr\f1 [ \f2\-R\f1 | \f2\-D\f1 ] [ \f2+/\-riasAdtPn\f1 ]
-Change extended inode flags on the currently open file.
-The \f2-R\f1 and \f2-D\f1 options have the same meaning as above.
-The mapping between each letter and the inode flags (refer to
-\f2xfsctl\f1(3) for the full list) is available via the \f3help\f1 command.
-.TP
-\f3freeze\f1
+.BR chattr " [ " \-R " | " \-D " ] [ " + / \-riasAdtPneEfS " ]"
+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.
.TP
-\f3thaw\f1
+.B thaw
Undo the effects of a filesystem freeze operation.
Only available in expert mode and requires privileges.
.TP
-\f3inject\f1 [ \f2tag\f1 ]
+.BI "inject [ " tag " ]"
Inject errors into a filesystem to observe filesystem behavior at
-specific points under adverse conditions.
-Without an argument, displays the list of error tags available.
+specific points under adverse conditions. Without the
+.I tag
+argument, displays the list of error tags available.
Only available in expert mode and requires privileges.
.TP
-\f3resblks\f1 [ \f2blocks\f1 ]
+.BI "resblks [ " blocks " ]"
Get and/or set count of reserved filesystem blocks using the
XFS_IOC_GET_RESBLKS or XFS_IOC_SET_RESBLKS system calls.
Note \-\- this can be useful for exercising out of space behavior.
Only available in expert mode and requires privileges.
.TP
-\f3shutdown\f1 [ \f2\-f\f1 ]
+.BR shutdown " [ " \-f " ]"
Force the filesystem to shutdown (with or without flushing the log).
Only available in expert mode and requires privileges.
.TP
-\f3stat\f1 [ \f2\-v\f1 ]
-Selected statistics from \f2stat\f1(2) and the XFS_IOC_GETXATTR
-system call on the current file.
-If the \f2-v\f1 option is specified, the atime (last access), mtime
+.BR stat " [ " \-v " ]"
+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.
.TP
-\f3statfs\f1
-Selected statistics from \f2statfs\f1(2) and the XFS_IOC_FSGEOMETRY
+.B statfs
+Selected statistics from
+.BR statfs (2)
+and the XFS_IOC_FSGEOMETRY
system call on the filesystem where the current file resides.
.TP
-\f3parent\f1 [ \f2\-cpv\f1 ]
+.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.
-If the \f2-p\f1 option is specified, then the output is similar
-to the default output except pathnames up to the mount-point
-are printed out instead of the component name.
-If the \f2-c\f1 option is specified, then the file's filesystem
-will check all the parent attributes for consistency.
-If the \f2-v\f1 option is specified, then verbose output will be
-printed.
-Not currently operational on Linux.
-
-.SH IRIX SEE ALSO
-mkfs_xfs(1M),
-syssgi(2),
-xfs_bmap(1M),
-xfs_db(1M),
-xfs(4).
-
-.SH LINUX SEE ALSO
-mkfs.xfs(8),
-xfsctl(3),
-xfs_bmap(8),
-xfs_db(8),
-xfs(5).
+.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.]
+.PD
.SH SEE ALSO
-fdatasync(2),
-fstat(2),
-fstatfs(2),
-fsync(2),
-ftruncate(2),
-mmap(2),
-open(2),
-pread(2),
-pwrite(2).
+.BR mkfs.xfs (8),
+.BR xfsctl (3),
+.BR xfs_bmap (8),
+.BR xfs_db (8),
+.BR xfs (5),
+.BR fdatasync (2),
+.BR fstat (2),
+.BR fstatfs (2),
+.BR fsync (2),
+.BR ftruncate (2),
+.BR mmap (2),
+.BR msync (2),
+.BR open (2),
+.BR pread (2),
+.BR pwrite (2).
.SH NAME
xfs_logprint \- print the log of an XFS filesystem
.SH SYNOPSIS
-.nf
-\f3xfs_logprint\f1 [ options ] device-name
-\f3xfs_logprint \-f\f1 [ options ] filename
-.fi
+.B xfs_logprint
+[
+.I options
+]
+.I device
.SH DESCRIPTION
-.I xfs_logprint
+.B xfs_logprint
prints the log of an XFS filesystem (see
-.IR xfs (5)).
+.BR xfs (5)).
The
-.I device-name
+.I device
argument is the pathname of the partition or logical volume
-containing the filesystem.
-The contents of the filesystem remain undisturbed.
+containing the filesystem. The
+.I device
+can be a regular file if the
+.B \-f
+option is used. The contents of the filesystem remain undisturbed.
There are two major modes of operation in
-.IR xfs_logprint .
+.BR xfs_logprint .
.PP
One mode is better for filesystem operation debugging.
-It is called the transactional view and is enabled through the \f3\-t\f1
-option.
-The transactional view prints only the portion of the log that
-pertains to recovery.
-In other words, it prints out complete transactions between the tail
-and the head.
-This view tries to display each transaction without
-regard to how they are split across log records.
+It is called the transactional view and is enabled through the
+.B \-t
+option. The transactional view prints only the portion of the log that
+pertains to recovery. In other words, it prints out complete transactions
+between the tail and the head. This view tries to display each transaction
+without regard to how they are split across log records.
.PP
The second mode starts printing out information from the beginning of the log.
Some error blocks might print out in the beginning because the last log
-record usually overlaps the oldest log record.
-A message is
+record usually overlaps the oldest log record. A message is
printed when the physical end of the log is reached and when the
-logical end of the log is reached.
-A log record view is displayed
-one record at a time.
-Transactions that span log records may not be
+logical end of the log is reached. A log record view is displayed
+one record at a time. Transactions that span log records may not be
decoded fully.
-.PP
-Common options are:
+.SH OPTIONS
.TP
-\f3\-b\f1
-Extract and print buffer information.
-Only used in transactional view.
+.B \-b
+Extract and print buffer information. Only used in transactional view.
.TP
-\f3\-c\f1
+.B \-c
Attempt to continue when an error is detected.
.TP
-\f3\-C\f1 \f2filename\f1
-Copy the log from the filesystem to the file \f2filename\f1.
+.BI \-C " filename"
+Copy the log from the filesystem to the file
+.IR filename .
The log itself is not printed.
.TP
-\f3\-d\f1
+.B \-d
Dump the log from front to end, printing where each log record is located
on disk.
.TP
-\f3\-D\f1
+.B \-D
Do not decode anything; just print data.
.TP
-\f3\-e\f1
-Exit when an error is found in the log.
-Normally,
-.I xfs_logprint
+.B \-e
+Exit when an error is found in the log. Normally,
+.B xfs_logprint
tries to continue and unwind from bad logs.
However, sometimes it just dies in bad ways.
Using this option prevents core dumps.
.TP
-\f3\-f\f1
-The log is a file.
+.B \-f
+Specifies that the filesystem image to be processed is stored in a
+regular file at
+.I device
+(see the
+.BR mkfs.xfs "(8) " -d
+.I file
+option).
+This might happen if an image copy of a filesystem has been made into
+an ordinary file with
+.BR xfs_copy (8).
.TP
-\f3\-l\f1
-External log device.
-Only for those filesystems which use an external log.
+.B \-l
+External log device. Only for those filesystems which use an external log.
.TP
-\f3\-i\f1
-Extract and print inode information.
-Only used in transactional view.
+.B \-i
+Extract and print inode information. Only used in transactional view.
.TP
-\f3\-q\f1
-Extract and print quota information.
-Only used in transactional view.
+.B \-q
+Extract and print quota information. Only used in transactional view.
.TP
-\f3\-n\f1
+.B \-n
Do not try and interpret log data; just interpret log header information.
.TP
-\f3\-o\f1
+.B \-o
Also print buffer data in hex.
Normally, buffer data is just decoded, so better information can be printed.
.TP
-\f3\-s\f1 \f2start-block\f1
+.BI \-s " start-block"
Override any notion of where to start printing.
.TP
-\f3\-t\f1
+.B \-t
Print out the transactional view.
.SH SEE ALSO
-mkfs.xfs(8),
-mount(8).
+.BR mkfs.xfs (8),
+.BR mount (8).
xfs_mdrestore \- restores an XFS metadump image to a filesystem image
.SH SYNOPSIS
.B xfs_mdrestore
-.RB [ \-g ]
+[
+.B \-g
+]
.I source
.I target
.SH DESCRIPTION
xfs_metadump \- copy XFS filesystem metadata to a file
.SH SYNOPSIS
.B xfs_metadump
-.RB [ \-efgow ]
-.RB [ \-l
-.IR logdev ]
+[
+.B \-efgow
+] [
+.B \-l
+.I logdev
+]
.I source
.I target
.SH DESCRIPTION
.SH NAME
xfs_mkfile \- create an XFS file
.SH SYNOPSIS
-.nf
-\f3xfs_mkfile\f1 [\f3\-v\f1] [\f3\-n\f1] \c
-\f2size\f1[\f3k\f1|\f3b\f1|\f3m\f1|\f3g\f1] \f2filename\f1...
-.fi
+.B xfs_mkfile
+[
+.B \-v
+] [
+.B \-n
+]
+.I size\c
+.RB [ k | b | m | g ]
+.IR filename " ..."
.SH DESCRIPTION
-.I xfs_mkfile
-creates one or more files.
-The file is padded with zeroes by
-default.
+.B xfs_mkfile
+creates one or more files. The file is padded with zeroes by default.
The default size is in bytes, but it can be
-flagged as kilobytes, blocks, megabytes, or gigabytes with the \f3k\f1,
-\f3b\f1, \f3m\f1, or \f3g\f1 suffixes, respectively.
+flagged as kilobytes, blocks, megabytes, or gigabytes with the
+.BR k ,
+.BR b ,
+.BR m ,
+or
+.B g
+suffixes, respectively.
.SH OPTIONS
.TP
-\f3\-v\f1
-Verbose.
-Report the names and sizes of created files.
+.B \-v
+Verbose. Report the names and sizes of created files.
.TP
-\f3\-n\f1
-No bytes.
-Create a holey file - that is,
-do not write out any data, just
+.B \-n
+No bytes. Create a holey file - that is, do not write out any data, just
seek to end of file and write a block.
.SH NAME
xfs_ncheck \- generate pathnames from i-numbers for XFS
.SH SYNOPSIS
-.nf
-\f3xfs_ncheck\f1 [ \f3\-i\f1 ino ] ...
- [ \f3\-s\f1 ] [ \f3\-l\f1 logdev ] xfs_special
-.sp .8v
-\f3xfs_ncheck\f1 \f3\-f\f1 [ \f3\-i\f1 ino ] ...
- [ \f3\-s\f1 ] [ \f3\-l\f1 logdev ] file
-.fi
+.B xfs_ncheck
+[
+.B \-i
+.I ino
+] ... [
+.B \-f
+] [
+.B \-s
+] [
+.B \-l
+.I logdev
+]
+.I device
.SH DESCRIPTION
-.I xfs_ncheck
+.B xfs_ncheck
with no
.B \-i
arguments generates an inode number and pathname list of all
-files on the given filesystem.
-Names of directory files are followed by
+files on the given filesystem. Names of directory files are followed by
.BR /. .
The output is not sorted in any particular order.
The filesystem to be examined is specified by the
-.I xfs_special
+.I device
argument, which should be the disk or volume device for the filesystem.
-Filesystems stored in files can also be checked, using the \f3\-f\f1 flag.
-.PP
-The options to \f2xfs_ncheck\f1 are:
-.TP 9
+Filesystems stored in files can also be checked, using the
+.B \-f
+flag.
+.SH OPTIONS
+.TP 0.9i
.B \-f
-Specifies that the special device is actually a file (see the
-\f2mkfs.xfs\f1 \f3\-d\f1 \f2file\f1 option).
-This might happen if an image copy
+Specifies that the filesystem image to be processed is stored in a
+regular file at
+.I device
+(see the
+.B mkfs.xfs \-d
+.I \f2file\f1
+option). This might happen if an image copy
of a filesystem has been made into an ordinary file.
.TP
-.B \-l
-Specifies the device special file where the filesystem's external
-log resides.
-Only for those filesystems which use an external log.
-See the
-\f2mkfs.xfs\f1 \f3\-l\f1 option, and refer to
-.IR xfs (5)
+.BI \-l " logdev"
+Specifies the device where the filesystem's external log resides.
+Only for those filesystems which use an external log. See the
+.B mkfs.xfs \-l
+option, and refer to
+.BR xfs (5)
for a detailed description of the XFS log.
.TP
.B \-s
.PP
If the filesystem is seriously corrupted, or very busy and looks
like it is corrupt, a message of the form that would be generated by
-.IR xfs_check (8)
+.BR xfs_check (8)
may appear.
.PP
-.I xfs_ncheck
+.B xfs_ncheck
is only useful with XFS filesystems.
.SH SEE ALSO
-mkfs.xfs(8),
-xfs_ncheck(8),
-xfs_check(8),
-xfs(5).
+.BR mkfs.xfs (8),
+.BR xfs_check (8),
+.BR xfs (5).
.SH NAME
xfs_quota \- manage use of quota on XFS filesystems
.SH SYNOPSIS
-.nf
-\f3xfs_quota\f1 [ \f3\-x\f1 ] [ \f3\-p\f1 prog ] [ \f3\-c\f1 cmd ] ...
- [ \f3\-d\f1 project ] ... [path...]
-.fi
+.B xfs_quota
+[
+.B \-x
+] [
+.B \-p
+.I prog
+] [
+.B \-c
+.I cmd
+] ... [
+.B \-d
+.I project
+] ... [
+.IR path " ... ]"
.SH DESCRIPTION
-\f2xfs_quota\f1 is a utility for reporting and editing various
-aspects of filesystem quota.
+.B xfs_quota
+is a utility for reporting and editing various aspects of filesystem quota.
.PP
-The options to \f2xfs_quota\f1 are:
-.TP 10
-\f3\-c\f1 \f2cmd\f1
-\f2xfs_quota\f1 commands may be run interactively (the default)
-or as arguments on the command line.
-Multiple \f3\-c\f1 arguments may be given.
+The options to
+.B xfs_quota
+are:
+.TP 1.0i
+.BI \-c " cmd"
+.B xfs_quota
+commands may be run interactively (the default) or as arguments on
+the command line. Multiple
+.B \-c
+arguments may be given.
The commands are run in the sequence given, then the program exits.
.TP
-\f3\-p\f1 \f2prog\f1
+.BI \-p " prog"
Set the program name for prompts and some error messages,
-the default value is \f2xfs_quota\f1.
+the default value is
+.BR xfs_quota .
.TP
-\f3\-x\f1
+.B \-x
Enable expert mode.
All of the administrative commands (see the ADMINISTRATOR COMMANDS
section below) which allow modifications to the quota system are
available only in expert mode.
.TP
-\f3\-d\f1 \f2project\f1
+.BI \-d " project"
Project names or numeric identifiers may be specified with this option,
-which restricts the output of the individual \f3xfs_quota\f1 commands
-to the set of projects specified.
-Multiple \f3\-d\f1 arguments may be given.
+which restricts the output of the individual
+.B xfs_quota
+commands to the set of projects specified. Multiple
+.B \-d
+arguments may be given.
.PP
-The optional \f2path\f1 argument(s) can be used to specify mount
-points or device files which identify XFS filesystems.
-The output of the individual \f3xfs_quota\f1 commands will then
-be restricted to the set of filesystems specified.
+The optional
+.I path
+argument(s) can be used to specify mount points or device files
+which identify XFS filesystems. The output of the individual
+.B xfs_quota
+commands will then be restricted to the set of filesystems specified.
.PP
This manual page is divided into two sections \- firstly,
information for users of filesystems with quota enabled, and the
.PP
Note that common to almost all of the individual commands described
below are the options for specifying which quota types are of interest
-\- user quota (\f2\-u\f1), group quota (\f2\-g\f1), and/or project
-quota (\f2\-p\f1).
+\- user quota
+.RB ( \-u ),
+group quota
+.RB ( \-g ),
+and/or project quota
+.RB ( \-p ).
Also, several commands provide options to operate on "blocks used"
-(\f2\-b\f1), "inodes used" (\f2\-i\f1), and/or "realtime blocks used"
-(\f2\-r\f1).
+.RB ( \-b ),
+"inodes used"
+.RB ( \-i ),
+and/or "realtime blocks used"
+.RB ( \-r ).
.PP
-Many commands also have extensive online help.
-Use the \f3help\f1 command for more details on any command.
+Many commands also have extensive online help. Use the
+.B help
+command for more details on any command.
.SH QUOTA OVERVIEW
.PP
In most computing environments, disk space is not infinite.
There are two possible quotas that can be imposed \- a limit can be set
on the amount of space a user can occupy, and there may be a limit on
the number of files (inodes) he can own.
-.br
-The \f2quota\f1 command provides information on the quotas that have been
+.PP
+The
+.B quota
+command provides information on the quotas that have been
set by the system administrators and current usage.
-.br
+.PP
There are four numbers for each limit: current usage, soft limit
(quota), hard limit, and time limit.
The soft limit is the number of 1K-blocks (or files) that the user is
If a user's usage reaches the hard limit, further requests for space
(or attempts to create a file) fail with the "Quota exceeded" (EDQUOT)
error.
-.br
+.PP
When a user exceeds the soft limit, the timer is enabled.
Any time the quota drops below the soft limits, the timer is disabled.
If the timer pops, the particular limit that has been exceeded is treated
he can suspend
the editor, remove some files, then resume it.
A third possibility is to write the file to some other filesystem (perhaps
-to a file on \f2/tmp\f1) where the user's quota has not been exceeded.
+to a file on
+.IR /tmp )
+where the user's quota has not been exceeded.
Then after rectifying the quota situation, the file can be moved back to the
filesystem it belongs on.
.SH USER COMMANDS
.TP
-\f3path\f1 [ \f2N\f1 ]
-Lists all paths with devices/project identifiers or set the current
-path to the \f2N\f1th list entry (the current path is used by many
-of the commands described here, it identifies the filesystem toward
-which a command is directed).
+.B print
+Lists all paths with devices/project identifiers.
The path list can come from several places \- the command line,
-the mount table, and the \f2/etc/projects\f1 file.
-.TP
-\f3df\f1
-See the \f3free\f1 command.
+the mount table, and the
+.I /etc/projects
+file.
.TP
-\f3quota\f1 [ \f2\-gpu\f1 ] [ \f2\-bir\f1 ] [ \f2\-hnNv\f1 ] [ id|name ] ...
-Show individual usage and limits, for a single user name or numeric
-user ID.
-The \f2\-h\f1 option reports in a "human-readable" format similar
-to the
+.B df
+See the
+.B free
+command.
+.HP
+.B quota
+[
+.B \-gpu
+] [
+.B \-bir
+] [
+.B \-hnNv
+] [
+.I ID
+|
+.I name
+] ...
+.br
+Show individual usage and limits, for a single user
+.I name
+or numeric user
+.IR ID .
+The
+.B \-h
+option reports in a "human-readable" format similar to the
.BR df (1)
command.
.TP
-\f3free\f1 [ \f2\-bir\f1 ] [ \f2\-hN\f1 ]
+.BR free " [ " \-bir " ] [ " \-hN " ]"
Reports filesystem usage, much like the
.BR df (1)
utility.
-It can show usage for blocks, inode, and/or realtime block space,
-and shows used, free, and total available.
+It can show usage for
+.BR b locks,
+.BR i node,
+and/or
+.BR r ealtime
+block space, and shows used, free, and total available.
If project quota are in use (see the DIRECTORY TREE QUOTA section below),
-it will also report utilisation for those projects (directory trees).
-The \f2\-h\f1 option reports in a "human-readable" format,
-.TP
-\f3help\f1 [ \f2command\f1]
-Online help for all commands, or one specific \f2command\f1.
+it will also report utilisation for those projects (directory trees). The
+.B \-h
+option reports in a "human-readable" format,
+.HP
+.B help
+[
+.I command
+]
+.br
+Online help for all commands, or one specific
+.IR command .
.TP
-\f3quit\f1
-Exit \f2xfs_quota\f1.
+.B quit
+Exit
+.BR xfs_quota .
.TP
-\f3q\f1
-See the \f3quit\f1 command.
+.B q
+See the
+.B quit
+command.
.SH QUOTA ADMINISTRATION
The XFS quota system differs to that of other filesystems
in a number of ways.
filesystem metadata and uses journaling to provide a higher level
guarantee of consistency.
As such, it is administered differently, in particular:
-.TP
-1.
+.IP 1.
The
.B quotacheck
command has no effect on XFS filesystems.
The first time quota accounting is turned on (at mount time), XFS does
an automatic quotacheck internally; afterwards, the quota system will
always be completely consistent until quotas are manually turned off.
-.TP
-2.
+.IP 2.
There is no need for quota file(s) in the root of the XFS filesystem.
-.TP
-3.
+.IP 3.
XFS distinguishes between quota accounting and limit enforcement.
Quota accounting must be turned on at the time of mounting the XFS
filesystem.
command turns on both (user) quota accounting and enforcement.
The "uqnoenforce" option must be used to turn on user accounting with
limit enforcement disabled.
-.TP
-4.
+.IP 4.
Turning on quotas on the root filesystem is slightly different from
the above.
For IRIX XFS, refer to
.BR quotaon (1M).
For Linux XFS, the quota mount flags must be passed in with the
"rootflags=" boot parameter.
-.TP
-5.
-It is useful to use the \f2state\f1 to monitor the XFS quota subsystem
+.IP 5.
+It is useful to use the
+.B state
+to monitor the XFS quota subsystem
at various stages \- it can be used to see if quotas are turned on,
and also to monitor the space occupied by the quota system itself..
-.TP
-6.
+.IP 6.
There is a mechanism built into
.B xfsdump
that allows quota limit information to be backed up for later
restoration, should the need arise.
-.TP
-7.
+.IP 7.
Quota limits cannot be set before turning on quotas on.
-.TP
-8.
+.IP 8.
XFS filesystems keep quota accounting on the superuser (user ID zero),
and the tool will display the superuser's usage information.
However, limits are never enforced on the superuser (nor are they
enforced for group and project ID zero).
-.TP
-9.
+.IP 9.
XFS filesystems perform quota accounting whether the user has quota
limits or not.
-.TP
-10.
+.IP 10.
XFS supports the notion of project quota, which can be used to
implement a form of directory tree quota (i.e. to restrict a
directory tree to only being able to use up a component of the
filesystems available space; or simply to keep track of the
amount of space used, or number of inodes, within the tree).
.SH ADMINISTRATOR COMMANDS
+.HP
+.B path
+[
+.I N
+]
+.br
+Lists all paths with devices/project identifiers or set the current
+path to the
+.IR N th
+list entry (the current path is used by many
+of the commands described here, it identifies the filesystem toward
+which a command is directed).
+The patch list can come from several places \- the command line,
+the mount table, and the
+.I /etc/projects
+file.
.TP
-\f3report\f1 [ \f2\-gpu\f1 ] [ \f2\-bir\f1 ] [ \f2\-ahnNt\f1 ]
+.BR report " [ " \-gpu " ] [ " \-bir " ] [ " \-ahnNt " ]"
Report filesystem quota information.
This reports all quota usage for a filesystem, for the specified
-quota type (u/g/p and/or blocks/inodes/realtime).
-It reports blocks in 1KB units by default.
-The \f2\-h\f1 option reports in a "human-readable" format similar
-to the
+quota type
+.RB ( u / g / p
+and/or
+.BR b locks/ i nodes/ r ealtime).
+It reports blocks in 1KB units by default. The
+.B \-h
+option reports in a "human-readable" format similar to the
.BR df (1)
command.
.TP
-\f3state\f1 [ \f2\-gpu\f1 ]
+.BR state " [ " \-gpu " ]"
Report overall quota state information.
This reports on the state of quota accounting, quota enforcement,
and the number of extents being used by quota metadata within the
filesystem.
-.TP
-\f3limit\f1 [ \f2\-gpu\f1 ] \\
-\f2bsoft\f1=N | \f2bhard\f1=N | \f2isoft\f1=N | \f2ihard\f1=N | \f2rtbsoft\f1=N | \f2rtbhard\f1=N... \-d|id|name
+.HP
+.B
+limit
+[
+.B \-gpu
+]
+.BI bsoft= N
+|
+.BI bhard= N
+|
+.BI isoft= N
+|
+.BI ihard= N
+|
+.BI rtbsoft= N
+|
+.BI rtbhard= N
+.B \-d
+|
+.I id
+|
+.I name
.br
Set quota block limits (bhard/bsoft), inode count limits (ihard/isoft)
-and/or realtime block limits (rtbhard/rtbsoft).
-The \f2\-d\f1 option (defaults) can be used to set the default value
-that will be used, otherwise a specific user/group/project name or
-numeric identifier must be specified.
-.TP
-\f3timer\f1 [ \f2\-gpu\f1 ] [ \f2\-bir\f1 ] value
+and/or realtime block limits (rtbhard/rtbsoft). The
+.B \-d
+option (defaults) can be used to set the default value
+that will be used, otherwise a specific
+.BR u ser/ g roup/ p roject
+.I name
+or numeric
+.IR id entifier
+must be specified.
+.HP
+.B timer
+[
+.B \-gpu
+] [
+.B \-bir
+]
+.I value
+.br
Allows the quota enforcement timeout (i.e. the amount of time allowed
to pass before the soft limits are enforced as the hard limits) to
-be modified.
-The current timeout setting can be displayed using the \f3state\f1 command.
-The value argument is a number of seconds, but units of 'seconds',
-'minutes', 'hours', 'days', and 'weeks' are also understood
-(as are their abbreviations, 's', 'm', 'h', 'd', and 'w').
-.TP
-\f3warn\f1 [ \f2\-gpu\f1 ] [ \f2\-bir\f1 ] value \-d|id|name
+be modified. The current timeout setting can be displayed using the
+.B state
+command. The value argument is a number of seconds, but units of
+\&'minutes', 'hours', 'days', and 'weeks' are also understood
+(as are their abbreviations 'm', 'h', 'd', and 'w').
+.HP
+.B warn
+[
+.B \-gpu
+] [
+.B \-bir
+]
+.I value
+.B -d
+|
+.I id
+|
+.I name
+.br
Allows the quota warnings limit (i.e. the number of times a warning
-will be send to someone over quota) to be viewed and modified.
-The \f2\-d\f1 option (defaults) can be used to set the default time
-that will be used, otherwise a specific user/group/project name or
-numeric identifier must be specified.
-NOTE: this feature is not currently implemented.
-.TP
-\f3enable\f1 [ \f2\-gpu\f1 ] [ \f2\-v\f1 ]
+will be send to someone over quota) to be viewed and modified. The
+.B \-d
+option (defaults) can be used to set the default time
+that will be used, otherwise a specific
+.BR u ser/ g roup/ p roject
+.I name
+or numeric
+.IR id entifier
+must be specified.
+.B NOTE: this feature is not currently implemented.
+.TP
+.BR enable " [ " \-gpu " ] [ " \-v " ]"
Switches on quota enforcement for the filesystem identified by the
current path.
This requires the filesystem to have been mounted with quota enabled,
-and for accounting to be currently active.
-The \f2\-v\f1 option (verbose) displays the state after the operation
-has completed.
+and for accounting to be currently active. The
+.B \-v
+option (verbose) displays the state after the operation has completed.
.TP
-\f3disable\f1 [ \f2\-gpu\f1 ] [ \f2\-v\f1 ]
-Disables quota enforcement, while leaving quota accounting active.
-The \f2\-v\f1 option (verbose) displays the state after the operation
-has completed.
+.BR disable " [ " \-gpu " ] [ " \-v " ]"
+Disables quota enforcement, while leaving quota accounting active. The
+.B \-v
+option (verbose) displays the state after the operation has completed.
.TP
-\f3off\f1 [ \f2\-gpu\f1 ] [ \f2\-v\f1 ]
+.BR off " [ " \-gpu " ] [ " \-v " ]"
Permanently switches quota off for the filesystem identified by the
current path.
Quota can only be switched back on subsequently by unmounting and
then mounting again.
.TP
-\f3remove\f1 [ \f2\-gpu\f1 ] [ \f2\-v\f1 ]
+.BR remove " [ " \-gpu " ] [ " \-v " ]"
Remove any space allocated to quota metadata from the filesystem
identified by the current path.
Quota must not be enabled on the filesystem, else this operation will
report an error.
-.TP
-\f3dump\f1 [ \f2\-gpu\f1 ] [ \f2\-f\f1 \f2file\f1 ]
+.HP
+.B
+dump
+[
+.B \-gpu
+] [
+.B \-f
+.I file
+]
+.br
Dump out quota limit information for backup utilities, either to
-standard output (default) or to a file.
+standard output (default) or to a
+.IR file .
This is only the limits, not the usage information, of course.
+.HP
+.B restore
+[
+.B \-gpu
+] [
+.B \-f
+.I file
+]
+.br
+Restore quota limits from a backup
+.IR file .
+The file must be in the format produced by the
+.B dump
+command.
.TP
-\f3restore\f1 [ \f2\-gpu\f1 ] [ \f2\-f\f1 \f2file\f1 ]
-Restore quota limits from a backup \f2file\f1.
-The file must be in the format produced by the \f3dump\f1 command.
-.TP
-\f3quot\f1 [ \f2\-gpu\f1 ] [ \f2\-bir\f1 ] [ \f2\-av\f1 ] [ \f2\-c\f1 ]
+.BR quot " [ " \-gpu " ] [ " \-bir " ] [ " \-av " ] [ " \-c " ]"
Summarize filesystem ownership, by user, group or project.
This command uses a special XFS "bulkstat" interface to quickly scan
an entire filesystem and report usage information.
This command can be used even when filesystem quota are not enabled,
as it is a full-filesystem scan (it may also take a long time...).
-.TP
-\f3project\f1 [ \f2\-cds\f1 id|name ]
+.HP
+.B project
+[
+.B \-cCs
+.I id
+|
+.I name
+]
+.br
Without arguments, this command lists known project names and identifiers
(based on entries in the
.I /etc/projects
and
.I /etc/projid
-files).
-The \f2\-c\f1, \f2\-C\f1, and \f2\-s\f1 options allow the directory
+files). The
+.BR \-c ,
+.BR \-C ,
+and
+.B \-s
+options allow the directory
tree quota mechanism, discussed in detail below, to be maintained.
.SH DIRECTORY TREE QUOTA
The project quota mechanism in XFS can be used to implement a form of
a subset of the available space in the filesystem.
.PP
A managed tree must be setup initially using the
-\f2\-s\f1 option to the \f3project\f1 command.
-The specified project name or identifier is matched to one or more trees
-defined in
+.B \-s
+option to the
+.B project
+command. The specified project name or identifier is matched to one
+or more trees defined in
.IR /etc/projects ,
and these trees are then recursively descended
to mark the affected inodes as being part of that tree.
can only be done by a privileged user.
.PP
A previously setup tree can be cleared from project quota control through
-use of the \f3project\f1 \f2\-C\f1 option, which will recursively descend
+use of the
+.B project \-C
+option, which will recursively descend
the tree, clearing the affected inodes from project quota control.
.PP
-Finally, the \f3project\f1 \f2\-c\f1 option can be used to check whether a
+Finally, the
+.B project \-c
+option can be used to check whether a
tree is setup, it reports nothing if the tree is correct, otherwise it
reports the paths of inodes which do not have the project ID of the rest
of the tree, or if the inode flag is not set.
.IR /etc/projid .
The latter is optional.
The
-.I projects
+.I /etc/projects
file provides a mapping between numeric project identifiers and those
directories which are the roots of the quota tree.
Its format is simply:
.nf
-.sp .8v
+.sp
.in +5
# comments are hash-prefixed
# ...
.fi
.PP
The
-.I projid
+.I /etc/projid
file provides a mapping between numeric project identifiers and a
simple human readable name (similar relationship to the one that
exists between usernames and uids).
Its format is simply:
.nf
-.sp .8v
+.sp
.in +5
# comments are hash-prefixed
# ...
Enabling quota enforcement on an XFS filesystem (restrict a user
to a set amount of space).
.nf
-.sp .8v
+.sp
.in +5
# mount \-o uquota /dev/xvm/home /home
# xfs_quota \-x \-c 'limit bsoft=500m bhard=550m tanya' /home
Enabling project quota on an XFS filesystem (restrict files in
log file directories to only using 1 gigabyte of space).
.nf
-.sp .8v
+.sp
.in +5
# mount \-o prjquota /dev/xvm/var /var
# echo 42:/var/log >> /etc/projects
# echo logfiles:42 >> /etc/projid
-# xfs_quota \-x \-c 'project \-s logfiles' /home
-# xfs_quota \-x \-c 'limit \-p bhard=1g logfiles' /home
+# xfs_quota \-x \-c 'project \-s logfiles' /var
+# xfs_quota \-x \-c 'limit \-p bhard=1g logfiles' /var
.in -5
.fi
.SH CAVEATS
.SH FILES
.PD 0
.TP 20
-.BR /etc/projects
+.I /etc/projects
Mapping of numeric project identifiers to directories trees.
.TP
-.BR /etc/projid
+.I /etc/projid
Mapping of numeric project identifiers to project names.
.PD
.SH IRIX SEE ALSO
-quotaon(1M),
-xfs(4).
+.BR quotaon (1M),
+.BR xfs (4).
.SH LINUX SEE ALSO
-warnquota(8),
-xfs(5).
+.BR warnquota (8),
+.BR xfs (5).
.SH SEE ALSO
-df(1),
-mount(1),
-sync(2),
+.BR df (1),
+.BR mount (1),
+.BR sync (2).
.SH NAME
xfs_rtcp \- XFS realtime copy command
.SH SYNOPSIS
-.nf
-\f3xfs_rtcp\f1 [\f3\-e\f1 extsize] [\f3\-p\f1] \f2source\f1... \f2target\f1
-.fi
+.B xfs_rtcp
+[
+.B \-e
+.I extsize
+] [
+.B -p
+]
+.IR source " ... " target
.SH DESCRIPTION
-.I xfs_rtcp
+.B xfs_rtcp
copies a file to the realtime partition on an XFS filesystem.
If there is more than one
.I source
must be a directory which already exists.
.SH OPTIONS
.TP
-\f3\-e\f1 extsize
+.BI \-e " extsize"
Sets the extent size of the destination realtime file.
.TP
-\f3\-p\f1
+.B \-p
Use if the size of the source file is not an even multiple of
-the block size of the destination filesystem.
-When
-\f3\-p\f1 is specified
-.I xfs_rtcp
+the block size of the destination filesystem. When
+.B \-p
+is specified
+.B xfs_rtcp
will pad the destination file to a size which is an even multiple
of the filesystem block size.
This is necessary since the realtime file is created using
direct I/O and the minimum I/O is the filesystem block size.
-.SH "SEE ALSO"
-xfs(5),
-mkfs.xfs(8),
-mount(8).
+.SH SEE ALSO
+.BR xfs (5),
+.BR mkfs.xfs (8),
+.BR mount (8).
.SH CAVEATS
Currently, realtime partitions are not supported under the Linux
version of XFS, and use of a realtime partition
-.BR "WILL CAUSE CORRUPTION"
-on the data partition.
-As such, this command is made available for curious
-.B "DEVELOPERS ONLY"
+.B WILL CAUSE CORRUPTION
+on the data partition. As such, this command is made available for curious
+.B DEVELOPERS ONLY
at this point in time.