sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget#/translations/zh_CN/admin-guide/xfsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/zh_TW/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/it_IT/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ja_JP/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ko_KR/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/sp_SP/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh=/var/lib/git/docbuild/linux/Documentation/admin-guide/xfs.rsthKubhsection)}(hhh](htitle)}(hThe SGI XFS Filesystemh]hThe SGI XFS Filesystem}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXUXFS is a high performance journaling filesystem which originated on the SGI IRIX platform. It is completely multi-threaded, can support large files and large filesystems, extended attributes, variable block sizes, is extent based, and makes extensive use of Btrees (directories, extents, free space) to aid both performance and scalability.h]hXUXFS is a high performance journaling filesystem which originated on the SGI IRIX platform. It is completely multi-threaded, can support large files and large filesystems, extended attributes, variable block sizes, is extent based, and makes extensive use of Btrees (directories, extents, free space) to aid both performance and scalability.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hRefer to the documentation at https://xfs.wiki.kernel.org/ for further details. This implementation is on-disk compatible with the IRIX version of XFS.h](hRefer to the documentation at }(hhhhhNhNubh reference)}(hhttps://xfs.wiki.kernel.org/h]hhttps://xfs.wiki.kernel.org/}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurihuh1hhhubh^ for further details. This implementation is on-disk compatible with the IRIX version of XFS.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Mount Optionsh]h Mount Options}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hDWhen mounting an XFS filesystem, the following options are accepted.h]hDWhen mounting an XFS filesystem, the following options are accepted.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh block_quote)}(hX%allocsize=size Sets the buffered I/O end-of-file preallocation size when doing delayed allocation writeout (default size is 64KiB). Valid values for this option are page size (typically 4KiB) through to 1GiB, inclusive, in power-of-2 increments. The default behaviour is for dynamic end-of-file preallocation size, which uses a set of heuristics to optimise the preallocation size based on the current allocation patterns within the file and the access patterns to the file. Specifying a fixed ``allocsize`` value turns off the dynamic behaviour. attr2 or noattr2 The options enable/disable an "opportunistic" improvement to be made in the way inline extended attributes are stored on-disk. When the new form is used for the first time when ``attr2`` is selected (either when setting or removing extended attributes) the on-disk superblock feature bit field will be updated to reflect this format being in use. The default behaviour is determined by the on-disk feature bit indicating that ``attr2`` behaviour is active. If either mount option is set, then that becomes the new default used by the filesystem. CRC enabled filesystems always use the ``attr2`` format, and so will reject the ``noattr2`` mount option if it is set. discard or nodiscard (default) Enable/disable the issuing of commands to let the block device reclaim space freed by the filesystem. This is useful for SSD devices, thinly provisioned LUNs and virtual machine images, but may have a performance impact. Note: It is currently recommended that you use the ``fstrim`` application to ``discard`` unused blocks rather than the ``discard`` mount option because the performance impact of this option is quite severe. grpid/bsdgroups or nogrpid/sysvgroups (default) These options define what group ID a newly created file gets. When ``grpid`` is set, it takes the group ID of the directory in which it is created; otherwise it takes the ``fsgid`` of the current process, unless the directory has the ``setgid`` bit set, in which case it takes the ``gid`` from the parent directory, and also gets the ``setgid`` bit set if it is a directory itself. filestreams Make the data allocator use the filestreams allocation mode across the entire filesystem rather than just on directories configured to use it. ikeep or noikeep (default) When ``ikeep`` is specified, XFS does not delete empty inode clusters and keeps them around on disk. When ``noikeep`` is specified, empty inode clusters are returned to the free space pool. inode32 or inode64 (default) When ``inode32`` is specified, it indicates that XFS limits inode creation to locations which will not result in inode numbers with more than 32 bits of significance. When ``inode64`` is specified, it indicates that XFS is allowed to create inodes at any location in the filesystem, including those which will result in inode numbers occupying more than 32 bits of significance. ``inode32`` is provided for backwards compatibility with older systems and applications, since 64 bits inode numbers might cause problems for some applications that cannot handle large inode numbers. If applications are in use which do not handle inode numbers bigger than 32 bits, the ``inode32`` option should be specified. largeio or nolargeio (default) If ``nolargeio`` is specified, the optimal I/O reported in ``st_blksize`` by **stat(2)** will be as small as possible to allow user applications to avoid inefficient read/modify/write I/O. This is typically the page size of the machine, as this is the granularity of the page cache. If ``largeio`` is specified, a filesystem that was created with a ``swidth`` specified will return the ``swidth`` value (in bytes) in ``st_blksize``. If the filesystem does not have a ``swidth`` specified but does specify an ``allocsize`` then ``allocsize`` (in bytes) will be returned instead. Otherwise the behaviour is the same as if ``nolargeio`` was specified. logbufs=value Set the number of in-memory log buffers. Valid numbers range from 2-8 inclusive. The default value is 8 buffers. If the memory cost of 8 log buffers is too high on small systems, then it may be reduced at some cost to performance on metadata intensive workloads. The ``logbsize`` option below controls the size of each buffer and so is also relevant to this case. lifetime (default) or nolifetime Enable data placement based on write life time hints provided by the user. This turns on co-allocation of data of similar life times when statistically favorable to reduce garbage collection cost. These options are only available for zoned rt file systems. logbsize=value Set the size of each in-memory log buffer. The size may be specified in bytes, or in kilobytes with a "k" suffix. Valid sizes for version 1 and version 2 logs are 16384 (16k) and 32768 (32k). Valid sizes for version 2 logs also include 65536 (64k), 131072 (128k) and 262144 (256k). The logbsize must be an integer multiple of the log stripe unit configured at **mkfs(8)** time. The default value for version 1 logs is 32768, while the default value for version 2 logs is MAX(32768, log_sunit). logdev=device and rtdev=device Use an external log (metadata journal) and/or real-time device. An XFS filesystem has up to three parts: a data section, a log section, and a real-time section. The real-time section is optional, and the log section can be separate from the data section or contained within it. max_atomic_write=value Set the maximum size of an atomic write. The size may be specified in bytes, in kilobytes with a "k" suffix, in megabytes with a "m" suffix, or in gigabytes with a "g" suffix. The size cannot be larger than the maximum write size, larger than the size of any allocation group, or larger than the size of a remapping operation that the log can complete atomically. The default value is to set the maximum I/O completion size to allow each CPU to handle one at a time. max_open_zones=value Specify the max number of zones to keep open for writing on a zoned rt device. Many open zones aids file data separation but may impact performance on HDDs. If ``max_open_zones`` is not specified, the value is determined by the capabilities and the size of the zoned rt device. noalign Data allocations will not be aligned at stripe unit boundaries. This is only relevant to filesystems created with non-zero data alignment parameters (``sunit``, ``swidth``) by **mkfs(8)**. norecovery The filesystem will be mounted without running log recovery. If the filesystem was not cleanly unmounted, it is likely to be inconsistent when mounted in ``norecovery`` mode. Some files or directories may not be accessible because of this. Filesystems mounted ``norecovery`` must be mounted read-only or the mount will fail. nouuid Don't check for double mounted file systems using the file system ``uuid``. This is useful to mount LVM snapshot volumes, and often used in combination with ``norecovery`` for mounting read-only snapshots. noquota Forcibly turns off all quota accounting and enforcement within the filesystem. uquota/usrquota/uqnoenforce/quota User disk quota accounting enabled, and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details. gquota/grpquota/gqnoenforce Group disk quota accounting enabled and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details. pquota/prjquota/pqnoenforce Project disk quota accounting enabled and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details. sunit=value and swidth=value Used to specify the stripe unit and width for a RAID device or a stripe volume. "value" must be specified in 512-byte block units. These options are only relevant to filesystems that were created with non-zero data alignment parameters. The ``sunit`` and ``swidth`` parameters specified must be compatible with the existing filesystem alignment characteristics. In general, that means the only valid changes to ``sunit`` are increasing it by a power-of-2 multiple. Valid ``swidth`` values are any integer multiple of a valid ``sunit`` value. Typically the only time these mount options are necessary if after an underlying RAID device has had its geometry modified, such as adding a new disk to a RAID5 lun and reshaping it. swalloc Data allocations will be rounded up to stripe width boundaries when the current end of file is being extended and the file size is larger than the stripe width size. wsync When specified, all filesystem namespace operations are executed synchronously. This ensures that when the namespace operation (create, unlink, etc) completes, the change to the namespace is on stable storage. This is useful in HA setups where failover must not result in clients seeing inconsistent namespace presentation during or after a failover event. h]hdefinition_list)}(hhh](hdefinition_list_item)}(hX$allocsize=size Sets the buffered I/O end-of-file preallocation size when doing delayed allocation writeout (default size is 64KiB). Valid values for this option are page size (typically 4KiB) through to 1GiB, inclusive, in power-of-2 increments. The default behaviour is for dynamic end-of-file preallocation size, which uses a set of heuristics to optimise the preallocation size based on the current allocation patterns within the file and the access patterns to the file. Specifying a fixed ``allocsize`` value turns off the dynamic behaviour. h](hterm)}(hallocsize=sizeh]hallocsize=size}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhK#hj(ubh definition)}(hhh](h)}(hSets the buffered I/O end-of-file preallocation size when doing delayed allocation writeout (default size is 64KiB). Valid values for this option are page size (typically 4KiB) through to 1GiB, inclusive, in power-of-2 increments.h]hSets the buffered I/O end-of-file preallocation size when doing delayed allocation writeout (default size is 64KiB). Valid values for this option are page size (typically 4KiB) through to 1GiB, inclusive, in power-of-2 increments.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj>ubh)}(hX,The default behaviour is for dynamic end-of-file preallocation size, which uses a set of heuristics to optimise the preallocation size based on the current allocation patterns within the file and the access patterns to the file. Specifying a fixed ``allocsize`` value turns off the dynamic behaviour.h](hThe default behaviour is for dynamic end-of-file preallocation size, which uses a set of heuristics to optimise the preallocation size based on the current allocation patterns within the file and the access patterns to the file. Specifying a fixed }(hjOhhhNhNubhliteral)}(h ``allocsize``h]h allocsize}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjOubh' value turns off the dynamic behaviour.}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj>ubeh}(h]h ]h"]h$]h&]uh1j<hj(ubeh}(h]h ]h"]h$]h&]uh1j&hhhK#hj#ubj')}(hXattr2 or noattr2 The options enable/disable an "opportunistic" improvement to be made in the way inline extended attributes are stored on-disk. When the new form is used for the first time when ``attr2`` is selected (either when setting or removing extended attributes) the on-disk superblock feature bit field will be updated to reflect this format being in use. The default behaviour is determined by the on-disk feature bit indicating that ``attr2`` behaviour is active. If either mount option is set, then that becomes the new default used by the filesystem. CRC enabled filesystems always use the ``attr2`` format, and so will reject the ``noattr2`` mount option if it is set. h](j-)}(hattr2 or noattr2h]hattr2 or noattr2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhK3hj}ubj=)}(hhh](h)}(hX[The options enable/disable an "opportunistic" improvement to be made in the way inline extended attributes are stored on-disk. When the new form is used for the first time when ``attr2`` is selected (either when setting or removing extended attributes) the on-disk superblock feature bit field will be updated to reflect this format being in use.h](hThe options enable/disable an “opportunistic” improvement to be made in the way inline extended attributes are stored on-disk. When the new form is used for the first time when }(hjhhhNhNubjX)}(h ``attr2``h]hattr2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh is selected (either when setting or removing extended attributes) the on-disk superblock feature bit field will be updated to reflect this format being in use.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK&hjubh)}(hThe default behaviour is determined by the on-disk feature bit indicating that ``attr2`` behaviour is active. If either mount option is set, then that becomes the new default used by the filesystem.h](hOThe default behaviour is determined by the on-disk feature bit indicating that }(hjhhhNhNubjX)}(h ``attr2``h]hattr2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubhn behaviour is active. If either mount option is set, then that becomes the new default used by the filesystem.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK-hjubh)}(hvCRC enabled filesystems always use the ``attr2`` format, and so will reject the ``noattr2`` mount option if it is set.h](h'CRC enabled filesystems always use the }(hjhhhNhNubjX)}(h ``attr2``h]hattr2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh format, and so will reject the }(hjhhhNhNubjX)}(h ``noattr2``h]hnoattr2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh mount option if it is set.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjubeh}(h]h ]h"]h$]h&]uh1j<hj}ubeh}(h]h ]h"]h$]h&]uh1j&hhhK3hj#ubj')}(hXdiscard or nodiscard (default) Enable/disable the issuing of commands to let the block device reclaim space freed by the filesystem. This is useful for SSD devices, thinly provisioned LUNs and virtual machine images, but may have a performance impact. Note: It is currently recommended that you use the ``fstrim`` application to ``discard`` unused blocks rather than the ``discard`` mount option because the performance impact of this option is quite severe. h](j-)}(hdiscard or nodiscard (default)h]hdiscard or nodiscard (default)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhK>hjubj=)}(hhh](h)}(hEnable/disable the issuing of commands to let the block device reclaim space freed by the filesystem. This is useful for SSD devices, thinly provisioned LUNs and virtual machine images, but may have a performance impact.h]hEnable/disable the issuing of commands to let the block device reclaim space freed by the filesystem. This is useful for SSD devices, thinly provisioned LUNs and virtual machine images, but may have a performance impact.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj"ubh)}(hNote: It is currently recommended that you use the ``fstrim`` application to ``discard`` unused blocks rather than the ``discard`` mount option because the performance impact of this option is quite severe.h](h3Note: It is currently recommended that you use the }(hj3hhhNhNubjX)}(h ``fstrim``h]hfstrim}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhj3ubh application to }(hj3hhhNhNubjX)}(h ``discard``h]hdiscard}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhj3ubh unused blocks rather than the }(hj3hhhNhNubjX)}(h ``discard``h]hdiscard}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhj3ubhL mount option because the performance impact of this option is quite severe.}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK;hj"ubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhK>hj#ubj')}(hXgrpid/bsdgroups or nogrpid/sysvgroups (default) These options define what group ID a newly created file gets. When ``grpid`` is set, it takes the group ID of the directory in which it is created; otherwise it takes the ``fsgid`` of the current process, unless the directory has the ``setgid`` bit set, in which case it takes the ``gid`` from the parent directory, and also gets the ``setgid`` bit set if it is a directory itself. h](j-)}(h/grpid/bsdgroups or nogrpid/sysvgroups (default)h]h/grpid/bsdgroups or nogrpid/sysvgroups (default)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKGhjubj=)}(hhh]h)}(hX~These options define what group ID a newly created file gets. When ``grpid`` is set, it takes the group ID of the directory in which it is created; otherwise it takes the ``fsgid`` of the current process, unless the directory has the ``setgid`` bit set, in which case it takes the ``gid`` from the parent directory, and also gets the ``setgid`` bit set if it is a directory itself.h](hDThese options define what group ID a newly created file gets. When }(hjhhhNhNubjX)}(h ``grpid``h]hgrpid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh_ is set, it takes the group ID of the directory in which it is created; otherwise it takes the }(hjhhhNhNubjX)}(h ``fsgid``h]hfsgid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh6 of the current process, unless the directory has the }(hjhhhNhNubjX)}(h ``setgid``h]hsetgid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh% bit set, in which case it takes the }(hjhhhNhNubjX)}(h``gid``h]hgid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh. from the parent directory, and also gets the }(hjhhhNhNubjX)}(h ``setgid``h]hsetgid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh% bit set if it is a directory itself.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKGhj#ubj')}(hfilestreams Make the data allocator use the filestreams allocation mode across the entire filesystem rather than just on directories configured to use it. h](j-)}(h filestreamsh]h filestreams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKLhj ubj=)}(hhh]h)}(hMake the data allocator use the filestreams allocation mode across the entire filesystem rather than just on directories configured to use it.h]hMake the data allocator use the filestreams allocation mode across the entire filesystem rather than just on directories configured to use it.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1j&hhhKLhj#ubj')}(hikeep or noikeep (default) When ``ikeep`` is specified, XFS does not delete empty inode clusters and keeps them around on disk. When ``noikeep`` is specified, empty inode clusters are returned to the free space pool. h](j-)}(hikeep or noikeep (default)h]hikeep or noikeep (default)}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKRhj;ubj=)}(hhh]h)}(hWhen ``ikeep`` is specified, XFS does not delete empty inode clusters and keeps them around on disk. When ``noikeep`` is specified, empty inode clusters are returned to the free space pool.h](hWhen }(hjPhhhNhNubjX)}(h ``ikeep``h]hikeep}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjPubh] is specified, XFS does not delete empty inode clusters and keeps them around on disk. When }(hjPhhhNhNubjX)}(h ``noikeep``h]hnoikeep}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjPubhH is specified, empty inode clusters are returned to the free space pool.}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKOhjMubah}(h]h ]h"]h$]h&]uh1j<hj;ubeh}(h]h ]h"]h$]h&]uh1j&hhhKRhj#ubj')}(hXinode32 or inode64 (default) When ``inode32`` is specified, it indicates that XFS limits inode creation to locations which will not result in inode numbers with more than 32 bits of significance. When ``inode64`` is specified, it indicates that XFS is allowed to create inodes at any location in the filesystem, including those which will result in inode numbers occupying more than 32 bits of significance. ``inode32`` is provided for backwards compatibility with older systems and applications, since 64 bits inode numbers might cause problems for some applications that cannot handle large inode numbers. If applications are in use which do not handle inode numbers bigger than 32 bits, the ``inode32`` option should be specified. h](j-)}(hinode32 or inode64 (default)h]hinode32 or inode64 (default)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKchjubj=)}(hhh](h)}(hWhen ``inode32`` is specified, it indicates that XFS limits inode creation to locations which will not result in inode numbers with more than 32 bits of significance.h](hWhen }(hjhhhNhNubjX)}(h ``inode32``h]hinode32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh is specified, it indicates that XFS limits inode creation to locations which will not result in inode numbers with more than 32 bits of significance.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKUhjubh)}(hWhen ``inode64`` is specified, it indicates that XFS is allowed to create inodes at any location in the filesystem, including those which will result in inode numbers occupying more than 32 bits of significance.h](hWhen }(hjhhhNhNubjX)}(h ``inode64``h]hinode64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh is specified, it indicates that XFS is allowed to create inodes at any location in the filesystem, including those which will result in inode numbers occupying more than 32 bits of significance.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKYhjubh)}(hXF``inode32`` is provided for backwards compatibility with older systems and applications, since 64 bits inode numbers might cause problems for some applications that cannot handle large inode numbers. If applications are in use which do not handle inode numbers bigger than 32 bits, the ``inode32`` option should be specified.h](jX)}(h ``inode32``h]hinode32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubhX is provided for backwards compatibility with older systems and applications, since 64 bits inode numbers might cause problems for some applications that cannot handle large inode numbers. If applications are in use which do not handle inode numbers bigger than 32 bits, the }(hjhhhNhNubjX)}(h ``inode32``h]hinode32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh option should be specified.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK^hjubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKchj#ubj')}(hXlargeio or nolargeio (default) If ``nolargeio`` is specified, the optimal I/O reported in ``st_blksize`` by **stat(2)** will be as small as possible to allow user applications to avoid inefficient read/modify/write I/O. This is typically the page size of the machine, as this is the granularity of the page cache. If ``largeio`` is specified, a filesystem that was created with a ``swidth`` specified will return the ``swidth`` value (in bytes) in ``st_blksize``. If the filesystem does not have a ``swidth`` specified but does specify an ``allocsize`` then ``allocsize`` (in bytes) will be returned instead. Otherwise the behaviour is the same as if ``nolargeio`` was specified. h](j-)}(hlargeio or nolargeio (default)h]hlargeio or nolargeio (default)}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKqhjubj=)}(hhh](h)}(hXIf ``nolargeio`` is specified, the optimal I/O reported in ``st_blksize`` by **stat(2)** will be as small as possible to allow user applications to avoid inefficient read/modify/write I/O. This is typically the page size of the machine, as this is the granularity of the page cache.h](hIf }(hj2hhhNhNubjX)}(h ``nolargeio``h]h nolargeio}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhj2ubh+ is specified, the optimal I/O reported in }(hj2hhhNhNubjX)}(h``st_blksize``h]h st_blksize}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhj2ubh by }(hj2hhhNhNubhstrong)}(h **stat(2)**h]hstat(2)}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j^hj2ubh will be as small as possible to allow user applications to avoid inefficient read/modify/write I/O. This is typically the page size of the machine, as this is the granularity of the page cache.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKfhj/ubh)}(hXmIf ``largeio`` is specified, a filesystem that was created with a ``swidth`` specified will return the ``swidth`` value (in bytes) in ``st_blksize``. If the filesystem does not have a ``swidth`` specified but does specify an ``allocsize`` then ``allocsize`` (in bytes) will be returned instead. Otherwise the behaviour is the same as if ``nolargeio`` was specified.h](hIf }(hjxhhhNhNubjX)}(h ``largeio``h]hlargeio}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubh4 is specified, a filesystem that was created with a }(hjxhhhNhNubjX)}(h ``swidth``h]hswidth}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubh specified will return the }(hjxhhhNhNubjX)}(h ``swidth``h]hswidth}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubh value (in bytes) in }(hjxhhhNhNubjX)}(h``st_blksize``h]h st_blksize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubh$. If the filesystem does not have a }(hjxhhhNhNubjX)}(h ``swidth``h]hswidth}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubh specified but does specify an }(hjxhhhNhNubjX)}(h ``allocsize``h]h allocsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubh then }(hjxhhhNhNubjX)}(h ``allocsize``h]h allocsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubhP (in bytes) will be returned instead. Otherwise the behaviour is the same as if }(hjxhhhNhNubjX)}(h ``nolargeio``h]h nolargeio}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjxubh was specified.}(hjxhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKlhj/ubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKqhj#ubj')}(hX}logbufs=value Set the number of in-memory log buffers. Valid numbers range from 2-8 inclusive. The default value is 8 buffers. If the memory cost of 8 log buffers is too high on small systems, then it may be reduced at some cost to performance on metadata intensive workloads. The ``logbsize`` option below controls the size of each buffer and so is also relevant to this case. h](j-)}(h logbufs=valueh]h logbufs=value}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhK}hj"ubj=)}(hhh](h)}(hQSet the number of in-memory log buffers. Valid numbers range from 2-8 inclusive.h]hQSet the number of in-memory log buffers. Valid numbers range from 2-8 inclusive.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj4ubh)}(hThe default value is 8 buffers.h]hThe default value is 8 buffers.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhj4ubh)}(hIf the memory cost of 8 log buffers is too high on small systems, then it may be reduced at some cost to performance on metadata intensive workloads. The ``logbsize`` option below controls the size of each buffer and so is also relevant to this case.h](hIf the memory cost of 8 log buffers is too high on small systems, then it may be reduced at some cost to performance on metadata intensive workloads. The }(hjShhhNhNubjX)}(h ``logbsize``h]hlogbsize}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjSubhT option below controls the size of each buffer and so is also relevant to this case.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKyhj4ubeh}(h]h ]h"]h$]h&]uh1j<hj"ubeh}(h]h ]h"]h$]h&]uh1j&hhhK}hj#ubj')}(hX#lifetime (default) or nolifetime Enable data placement based on write life time hints provided by the user. This turns on co-allocation of data of similar life times when statistically favorable to reduce garbage collection cost. These options are only available for zoned rt file systems. h](j-)}(h lifetime (default) or nolifetimeh]h lifetime (default) or nolifetime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjubj=)}(hhh](h)}(hEnable data placement based on write life time hints provided by the user. This turns on co-allocation of data of similar life times when statistically favorable to reduce garbage collection cost.h]hEnable data placement based on write life time hints provided by the user. This turns on co-allocation of data of similar life times when statistically favorable to reduce garbage collection cost.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(h;These options are only available for zoned rt file systems.h]h;These options are only available for zoned rt file systems.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hXlogbsize=value Set the size of each in-memory log buffer. The size may be specified in bytes, or in kilobytes with a "k" suffix. Valid sizes for version 1 and version 2 logs are 16384 (16k) and 32768 (32k). Valid sizes for version 2 logs also include 65536 (64k), 131072 (128k) and 262144 (256k). The logbsize must be an integer multiple of the log stripe unit configured at **mkfs(8)** time. The default value for version 1 logs is 32768, while the default value for version 2 logs is MAX(32768, log_sunit). h](j-)}(hlogbsize=valueh]hlogbsize=value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjubj=)}(hhh](h)}(hX{Set the size of each in-memory log buffer. The size may be specified in bytes, or in kilobytes with a "k" suffix. Valid sizes for version 1 and version 2 logs are 16384 (16k) and 32768 (32k). Valid sizes for version 2 logs also include 65536 (64k), 131072 (128k) and 262144 (256k). The logbsize must be an integer multiple of the log stripe unit configured at **mkfs(8)** time.h](hXnSet the size of each in-memory log buffer. The size may be specified in bytes, or in kilobytes with a “k” suffix. Valid sizes for version 1 and version 2 logs are 16384 (16k) and 32768 (32k). Valid sizes for version 2 logs also include 65536 (64k), 131072 (128k) and 262144 (256k). The logbsize must be an integer multiple of the log stripe unit configured at }(hjhhhNhNubj_)}(h **mkfs(8)**h]hmkfs(8)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j^hjubh time.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hsThe default value for version 1 logs is 32768, while the default value for version 2 logs is MAX(32768, log_sunit).h]hsThe default value for version 1 logs is 32768, while the default value for version 2 logs is MAX(32768, log_sunit).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hX6logdev=device and rtdev=device Use an external log (metadata journal) and/or real-time device. An XFS filesystem has up to three parts: a data section, a log section, and a real-time section. The real-time section is optional, and the log section can be separate from the data section or contained within it. h](j-)}(hlogdev=device and rtdev=deviceh]hlogdev=device and rtdev=device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhj ubj=)}(hhh]h)}(hXUse an external log (metadata journal) and/or real-time device. An XFS filesystem has up to three parts: a data section, a log section, and a real-time section. The real-time section is optional, and the log section can be separate from the data section or contained within it.h]hXUse an external log (metadata journal) and/or real-time device. An XFS filesystem has up to three parts: a data section, a log section, and a real-time section. The real-time section is optional, and the log section can be separate from the data section or contained within it.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hXmax_atomic_write=value Set the maximum size of an atomic write. The size may be specified in bytes, in kilobytes with a "k" suffix, in megabytes with a "m" suffix, or in gigabytes with a "g" suffix. The size cannot be larger than the maximum write size, larger than the size of any allocation group, or larger than the size of a remapping operation that the log can complete atomically. The default value is to set the maximum I/O completion size to allow each CPU to handle one at a time. h](j-)}(hmax_atomic_write=valueh]hmax_atomic_write=value}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhj:ubj=)}(hhh](h)}(hXmSet the maximum size of an atomic write. The size may be specified in bytes, in kilobytes with a "k" suffix, in megabytes with a "m" suffix, or in gigabytes with a "g" suffix. The size cannot be larger than the maximum write size, larger than the size of any allocation group, or larger than the size of a remapping operation that the log can complete atomically.h]hXySet the maximum size of an atomic write. The size may be specified in bytes, in kilobytes with a “k” suffix, in megabytes with a “m” suffix, or in gigabytes with a “g” suffix. The size cannot be larger than the maximum write size, larger than the size of any allocation group, or larger than the size of a remapping operation that the log can complete atomically.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjLubh)}(hfThe default value is to set the maximum I/O completion size to allow each CPU to handle one at a time.h]hfThe default value is to set the maximum I/O completion size to allow each CPU to handle one at a time.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjLubeh}(h]h ]h"]h$]h&]uh1j<hj:ubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hX,max_open_zones=value Specify the max number of zones to keep open for writing on a zoned rt device. Many open zones aids file data separation but may impact performance on HDDs. If ``max_open_zones`` is not specified, the value is determined by the capabilities and the size of the zoned rt device. h](j-)}(hmax_open_zones=valueh]hmax_open_zones=value}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjwubj=)}(hhh](h)}(hSpecify the max number of zones to keep open for writing on a zoned rt device. Many open zones aids file data separation but may impact performance on HDDs.h]hSpecify the max number of zones to keep open for writing on a zoned rt device. Many open zones aids file data separation but may impact performance on HDDs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hxIf ``max_open_zones`` is not specified, the value is determined by the capabilities and the size of the zoned rt device.h](hIf }(hjhhhNhNubjX)}(h``max_open_zones``h]hmax_open_zones}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubhc is not specified, the value is determined by the capabilities and the size of the zoned rt device.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1j<hjwubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hnoalign Data allocations will not be aligned at stripe unit boundaries. This is only relevant to filesystems created with non-zero data alignment parameters (``sunit``, ``swidth``) by **mkfs(8)**. h](j-)}(hnoalignh]hnoalign}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjubj=)}(hhh]h)}(hData allocations will not be aligned at stripe unit boundaries. This is only relevant to filesystems created with non-zero data alignment parameters (``sunit``, ``swidth``) by **mkfs(8)**.h](hData allocations will not be aligned at stripe unit boundaries. This is only relevant to filesystems created with non-zero data alignment parameters (}(hjhhhNhNubjX)}(h ``sunit``h]hsunit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh, }(hjhhhNhNubjX)}(h ``swidth``h]hswidth}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh) by }(hjhhhNhNubj_)}(h **mkfs(8)**h]hmkfs(8)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j^hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hXPnorecovery The filesystem will be mounted without running log recovery. If the filesystem was not cleanly unmounted, it is likely to be inconsistent when mounted in ``norecovery`` mode. Some files or directories may not be accessible because of this. Filesystems mounted ``norecovery`` must be mounted read-only or the mount will fail. h](j-)}(h norecoveryh]h norecovery}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhj+ubj=)}(hhh]h)}(hXDThe filesystem will be mounted without running log recovery. If the filesystem was not cleanly unmounted, it is likely to be inconsistent when mounted in ``norecovery`` mode. Some files or directories may not be accessible because of this. Filesystems mounted ``norecovery`` must be mounted read-only or the mount will fail.h](hThe filesystem will be mounted without running log recovery. If the filesystem was not cleanly unmounted, it is likely to be inconsistent when mounted in }(hj@hhhNhNubjX)}(h``norecovery``h]h norecovery}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhj@ubh\ mode. Some files or directories may not be accessible because of this. Filesystems mounted }(hj@hhhNhNubjX)}(h``norecovery``h]h norecovery}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhj@ubh2 must be mounted read-only or the mount will fail.}(hj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj=ubah}(h]h ]h"]h$]h&]uh1j<hj+ubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hnouuid Don't check for double mounted file systems using the file system ``uuid``. This is useful to mount LVM snapshot volumes, and often used in combination with ``norecovery`` for mounting read-only snapshots. h](j-)}(hnouuidh]hnouuid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhj~ubj=)}(hhh]h)}(hDon't check for double mounted file systems using the file system ``uuid``. This is useful to mount LVM snapshot volumes, and often used in combination with ``norecovery`` for mounting read-only snapshots.h](hDDon’t check for double mounted file systems using the file system }(hjhhhNhNubjX)}(h``uuid``h]huuid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubhT. This is useful to mount LVM snapshot volumes, and often used in combination with }(hjhhhNhNubjX)}(h``norecovery``h]h norecovery}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh" for mounting read-only snapshots.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j<hj~ubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hWnoquota Forcibly turns off all quota accounting and enforcement within the filesystem. h](j-)}(hnoquotah]hnoquota}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjubj=)}(hhh]h)}(hNForcibly turns off all quota accounting and enforcement within the filesystem.h]hNForcibly turns off all quota accounting and enforcement within the filesystem.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(huquota/usrquota/uqnoenforce/quota User disk quota accounting enabled, and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details. h](j-)}(h!uquota/usrquota/uqnoenforce/quotah]h!uquota/usrquota/uqnoenforce/quota}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjubj=)}(hhh]h)}(huUser disk quota accounting enabled, and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details.h](hPUser disk quota accounting enabled, and limits (optionally) enforced. Refer to }(hjhhhNhNubj_)}(h**xfs_quota(8)**h]h xfs_quota(8)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j^hjubh for further details.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hgquota/grpquota/gqnoenforce Group disk quota accounting enabled and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details. h](j-)}(hgquota/grpquota/gqnoenforceh]hgquota/grpquota/gqnoenforce}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjAubj=)}(hhh]h)}(huGroup disk quota accounting enabled and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details.h](hPGroup disk quota accounting enabled and limits (optionally) enforced. Refer to }(hjVhhhNhNubj_)}(h**xfs_quota(8)**h]h xfs_quota(8)}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j^hjVubh for further details.}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjSubah}(h]h ]h"]h$]h&]uh1j<hjAubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hpquota/prjquota/pqnoenforce Project disk quota accounting enabled and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details. h](j-)}(hpquota/prjquota/pqnoenforceh]hpquota/prjquota/pqnoenforce}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjubj=)}(hhh]h)}(hwProject disk quota accounting enabled and limits (optionally) enforced. Refer to **xfs_quota(8)** for further details.h](hRProject disk quota accounting enabled and limits (optionally) enforced. Refer to }(hjhhhNhNubj_)}(h**xfs_quota(8)**h]h xfs_quota(8)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j^hjubh for further details.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hXsunit=value and swidth=value Used to specify the stripe unit and width for a RAID device or a stripe volume. "value" must be specified in 512-byte block units. These options are only relevant to filesystems that were created with non-zero data alignment parameters. The ``sunit`` and ``swidth`` parameters specified must be compatible with the existing filesystem alignment characteristics. In general, that means the only valid changes to ``sunit`` are increasing it by a power-of-2 multiple. Valid ``swidth`` values are any integer multiple of a valid ``sunit`` value. Typically the only time these mount options are necessary if after an underlying RAID device has had its geometry modified, such as adding a new disk to a RAID5 lun and reshaping it. h](j-)}(hsunit=value and swidth=valueh]hsunit=value and swidth=value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjubj=)}(hhh](h)}(hUsed to specify the stripe unit and width for a RAID device or a stripe volume. "value" must be specified in 512-byte block units. These options are only relevant to filesystems that were created with non-zero data alignment parameters.h]hUsed to specify the stripe unit and width for a RAID device or a stripe volume. “value” must be specified in 512-byte block units. These options are only relevant to filesystems that were created with non-zero data alignment parameters.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hX1The ``sunit`` and ``swidth`` parameters specified must be compatible with the existing filesystem alignment characteristics. In general, that means the only valid changes to ``sunit`` are increasing it by a power-of-2 multiple. Valid ``swidth`` values are any integer multiple of a valid ``sunit`` value.h](hThe }(hjhhhNhNubjX)}(h ``sunit``h]hsunit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh and }(hjhhhNhNubjX)}(h ``swidth``h]hswidth}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh parameters specified must be compatible with the existing filesystem alignment characteristics. In general, that means the only valid changes to }(hjhhhNhNubjX)}(h ``sunit``h]hsunit}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh3 are increasing it by a power-of-2 multiple. Valid }(hjhhhNhNubjX)}(h ``swidth``h]hswidth}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh, values are any integer multiple of a valid }(hjhhhNhNubjX)}(h ``sunit``h]hsunit}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1jWhjubh value.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hTypically the only time these mount options are necessary if after an underlying RAID device has had its geometry modified, such as adding a new disk to a RAID5 lun and reshaping it.h]hTypically the only time these mount options are necessary if after an underlying RAID device has had its geometry modified, such as adding a new disk to a RAID5 lun and reshaping it.}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hswalloc Data allocations will be rounded up to stripe width boundaries when the current end of file is being extended and the file size is larger than the stripe width size. h](j-)}(hswalloch]hswalloc}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhjh ubj=)}(hhh]h)}(hData allocations will be rounded up to stripe width boundaries when the current end of file is being extended and the file size is larger than the stripe width size.h]hData allocations will be rounded up to stripe width boundaries when the current end of file is being extended and the file size is larger than the stripe width size.}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjz ubah}(h]h ]h"]h$]h&]uh1j<hjh ubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubj')}(hXkwsync When specified, all filesystem namespace operations are executed synchronously. This ensures that when the namespace operation (create, unlink, etc) completes, the change to the namespace is on stable storage. This is useful in HA setups where failover must not result in clients seeing inconsistent namespace presentation during or after a failover event. h](j-)}(hwsynch]hwsync}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhKhj ubj=)}(hhh]h)}(hXdWhen specified, all filesystem namespace operations are executed synchronously. This ensures that when the namespace operation (create, unlink, etc) completes, the change to the namespace is on stable storage. This is useful in HA setups where failover must not result in clients seeing inconsistent namespace presentation during or after a failover event.h]hXdWhen specified, all filesystem namespace operations are executed synchronously. This ensures that when the namespace operation (create, unlink, etc) completes, the change to the namespace is on stable storage. This is useful in HA setups where failover must not result in clients seeing inconsistent namespace presentation during or after a failover event.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1j&hhhKhj#ubeh}(h]h ]h"]h$]h&]uh1j!hjubah}(h]h ]h"]h$]h&]uh1jhhhKhhhhubeh}(h] mount-optionsah ]h"] mount optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDeprecation of V4 Formath]hDeprecation of V4 Format}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hX_The V4 filesystem format lacks certain features that are supported by the V5 format, such as metadata checksumming, strengthened metadata verification, and the ability to store timestamps past the year 2038. Because of this, the V4 format is deprecated. All users should upgrade by backing up their files, reformatting, and restoring from the backup.h]hX_The V4 filesystem format lacks certain features that are supported by the V5 format, such as metadata checksumming, strengthened metadata verification, and the ability to store timestamps past the year 2038. Because of this, the V4 format is deprecated. All users should upgrade by backing up their files, reformatting, and restoring from the backup.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hAdministrators and users can detect a V4 filesystem by running xfs_info against a filesystem mountpoint and checking for a string containing "crc=". If no such string is found, please upgrade xfsprogs to the latest version and try again.h]hAdministrators and users can detect a V4 filesystem by running xfs_info against a filesystem mountpoint and checking for a string containing “crc=”. If no such string is found, please upgrade xfsprogs to the latest version and try again.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hX?The deprecation will take place in two parts. Support for mounting V4 filesystems can now be disabled at kernel build time via Kconfig option. The option will default to yes until September 2025, at which time it will be changed to default to no. In September 2030, support will be removed from the codebase entirely.h]hX?The deprecation will take place in two parts. Support for mounting V4 filesystems can now be disabled at kernel build time via Kconfig option. The option will default to yes until September 2025, at which time it will be changed to default to no. In September 2030, support will be removed from the codebase entirely.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h`Note: Distributors may choose to withdraw V4 format support earlier than the dates listed above.h]h`Note: Distributors may choose to withdraw V4 format support earlier than the dates listed above.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]deprecation-of-v4-formatah ]h"]deprecation of v4 formatah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDeprecated Mount Optionsh]hDeprecated Mount Options}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ hhhhhMubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jF hjC ubjG )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jF hjC ubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hNameh]hName}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjh ubah}(h]h ]h"]h$]h&]uh1jf hjc ubjg )}(hhh]h)}(hRemoval Scheduleh]hRemoval Schedule}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1jf hjc ubeh}(h]h ]h"]h$]h&]uh1ja hj^ ubah}(h]h ]h"]h$]h&]uh1j\ hjC ubhtbody)}(hhh](jb )}(hhh](jg )}(hhh]h)}(hMounting with V4 filesystemh]hMounting with V4 filesystem}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hSeptember 2030h]hSeptember 2030}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(hMounting ascii-ci filesystemh]hMounting ascii-ci filesystem}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hSeptember 2030h]hSeptember 2030}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(h ikeep/noikeeph]h ikeep/noikeep}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hSeptember 2025h]hSeptember 2025}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj/ ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(h attr2/noattr2h]h attr2/noattr2}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjO ubah}(h]h ]h"]h$]h&]uh1jf hjL ubjg )}(hhh]h)}(hSeptember 2025h]hSeptember 2025}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjf ubah}(h]h ]h"]h$]h&]uh1jf hjL ubeh}(h]h ]h"]h$]h&]uh1ja hj ubeh}(h]h ]h"]h$]h&]uh1j hjC ubeh}(h]h ]h"]h$]h&]colsKuh1jA hj> ubah}(h]h ]h"]h$]h&]uh1j< hj+ hhhhhNubeh}(h]deprecated-mount-optionsah ]h"]deprecated mount optionsah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hRemoved Mount Optionsh]hRemoved Mount Options}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubj= )}(hhh]jB )}(hhh](jG )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jF hj ubjG )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jF hj ubj] )}(hhh]jb )}(hhh](jg )}(hhh]h)}(hNameh]hName}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hRemovedh]hRemoved}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubah}(h]h ]h"]h$]h&]uh1j\ hj ubj )}(hhh](jb )}(hhh](jg )}(hhh]h)}(hdelaylog/nodelaylogh]hdelaylog/nodelaylog}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hv4.0h]hv4.0}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj& ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(h ihashsizeh]h ihashsize}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjF ubah}(h]h ]h"]h$]h&]uh1jf hjC ubjg )}(hhh]h)}(hv4.0h]hv4.0}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj] ubah}(h]h ]h"]h$]h&]uh1jf hjC ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(hirixsgidh]hirixsgid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj} ubah}(h]h ]h"]h$]h&]uh1jf hjz ubjg )}(hhh]h)}(hv4.0h]hv4.0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hjz ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(hosyncisdsync/osyncisosynch]hosyncisdsync/osyncisosync}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hv4.0h]hv4.0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(hbarrierh]hbarrier}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hv4.19h]hv4.19}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubjb )}(hhh](jg )}(hhh]h)}(h nobarrierh]h nobarrier}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj" ubah}(h]h ]h"]h$]h&]uh1jf hj ubjg )}(hhh]h)}(hv4.19h]hv4.19}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj9 ubah}(h]h ]h"]h$]h&]uh1jf hj ubeh}(h]h ]h"]h$]h&]uh1ja hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]colsKuh1jA hj ubah}(h]h ]h"]h$]h&]uh1j< hj hhhhhNubeh}(h]removed-mount-optionsah ]h"]removed mount optionsah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hsysctlsh]hsysctls}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjq hhhhhM#ubh)}(h;The following sysctls are available for the XFS filesystem:h]h;The following sysctls are available for the XFS filesystem:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hjq hhubj)}(hXfs.xfs.stats_clear (Min: 0 Default: 0 Max: 1) Setting this to "1" clears accumulated XFS statistics in /proc/fs/xfs/stat. It then immediately resets to "0". fs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000) The interval at which the filesystem flushes metadata out to disk and runs internal cache cleanup routines. fs.xfs.filestream_centisecs (Min: 1 Default: 3000 Max: 360000) The interval at which the filesystem ages filestreams cache references and returns timed-out AGs back to the free stream pool. fs.xfs.speculative_prealloc_lifetime (Units: seconds Min: 1 Default: 300 Max: 86400) The interval at which the background scanning for inodes with unused speculative preallocation runs. The scan removes unused preallocation from clean inodes and releases the unused space back to the free pool. fs.xfs.speculative_cow_prealloc_lifetime This is an alias for speculative_prealloc_lifetime. fs.xfs.error_level (Min: 0 Default: 3 Max: 11) A volume knob for error reporting when internal errors occur. This will generate detailed messages & backtraces for filesystem shutdowns, for example. Current threshold values are: XFS_ERRLEVEL_OFF: 0 XFS_ERRLEVEL_LOW: 1 XFS_ERRLEVEL_HIGH: 5 fs.xfs.panic_mask (Min: 0 Default: 0 Max: 511) Causes certain error conditions to call BUG(). Value is a bitmask; OR together the tags which represent errors which should cause panics: XFS_NO_PTAG 0 XFS_PTAG_IFLUSH 0x00000001 XFS_PTAG_LOGRES 0x00000002 XFS_PTAG_AILDELETE 0x00000004 XFS_PTAG_ERROR_REPORT 0x00000008 XFS_PTAG_SHUTDOWN_CORRUPT 0x00000010 XFS_PTAG_SHUTDOWN_IOERROR 0x00000020 XFS_PTAG_SHUTDOWN_LOGERROR 0x00000040 XFS_PTAG_FSBLOCK_ZERO 0x00000080 XFS_PTAG_VERIFIER_ERROR 0x00000100 This option is intended for debugging only. fs.xfs.irix_symlink_mode (Min: 0 Default: 0 Max: 1) Controls whether symlinks are created with mode 0777 (default) or whether their mode is affected by the umask (irix mode). fs.xfs.irix_sgid_inherit (Min: 0 Default: 0 Max: 1) Controls files created in SGID directories. If the group ID of the new file does not match the effective group ID or one of the supplementary group IDs of the parent dir, the ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl is set. fs.xfs.inherit_sync (Min: 0 Default: 1 Max: 1) Setting this to "1" will cause the "sync" flag set by the **xfs_io(8)** chattr command on a directory to be inherited by files in that directory. fs.xfs.inherit_nodump (Min: 0 Default: 1 Max: 1) Setting this to "1" will cause the "nodump" flag set by the **xfs_io(8)** chattr command on a directory to be inherited by files in that directory. fs.xfs.inherit_noatime (Min: 0 Default: 1 Max: 1) Setting this to "1" will cause the "noatime" flag set by the **xfs_io(8)** chattr command on a directory to be inherited by files in that directory. fs.xfs.inherit_nosymlinks (Min: 0 Default: 1 Max: 1) Setting this to "1" will cause the "nosymlinks" flag set by the **xfs_io(8)** chattr command on a directory to be inherited by files in that directory. fs.xfs.inherit_nodefrag (Min: 0 Default: 1 Max: 1) Setting this to "1" will cause the "nodefrag" flag set by the **xfs_io(8)** chattr command on a directory to be inherited by files in that directory. fs.xfs.rotorstep (Min: 1 Default: 1 Max: 256) In "inode32" allocation mode, this option determines how many files the allocator attempts to allocate in the same allocation group before moving to the next allocation group. The intent is to control the rate at which the allocator moves between allocation groups when allocating extents for new files. h]j")}(hhh](j')}(hfs.xfs.stats_clear (Min: 0 Default: 0 Max: 1) Setting this to "1" clears accumulated XFS statistics in /proc/fs/xfs/stat. It then immediately resets to "0". h](j-)}(h:fs.xfs.stats_clear (Min: 0 Default: 0 Max: 1)h]h:fs.xfs.stats_clear (Min: 0 Default: 0 Max: 1)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhM)hj ubj=)}(hhh]h)}(hoSetting this to "1" clears accumulated XFS statistics in /proc/fs/xfs/stat. It then immediately resets to "0".h]hwSetting this to “1” clears accumulated XFS statistics in /proc/fs/xfs/stat. It then immediately resets to “0”.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hj ubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1j&hhhM)hj ubj')}(hfs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000) The interval at which the filesystem flushes metadata out to disk and runs internal cache cleanup routines. h](j-)}(hDfs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000)h]hDfs.xfs.xfssyncd_centisecs (Min: 100 Default: 3000 Max: 720000)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhM-hj ubj=)}(hhh]h)}(hkThe interval at which the filesystem flushes metadata out to disk and runs internal cache cleanup routines.h]hkThe interval at which the filesystem flushes metadata out to disk and runs internal cache cleanup routines.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hj ubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1j&hhhM-hj ubj')}(hfs.xfs.filestream_centisecs (Min: 1 Default: 3000 Max: 360000) The interval at which the filesystem ages filestreams cache references and returns timed-out AGs back to the free stream pool. h](j-)}(hBfs.xfs.filestream_centisecs (Min: 1 Default: 3000 Max: 360000)h]hBfs.xfs.filestream_centisecs (Min: 1 Default: 3000 Max: 360000)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhM2hj ubj=)}(hhh]h)}(h~The interval at which the filesystem ages filestreams cache references and returns timed-out AGs back to the free stream pool.h]h~The interval at which the filesystem ages filestreams cache references and returns timed-out AGs back to the free stream pool.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM0hjubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1j&hhhM2hj ubj')}(hX+fs.xfs.speculative_prealloc_lifetime (Units: seconds Min: 1 Default: 300 Max: 86400) The interval at which the background scanning for inodes with unused speculative preallocation runs. The scan removes unused preallocation from clean inodes and releases the unused space back to the free pool. h](j-)}(h$fs.xfs.speculative_prealloc_lifetimeh]h$fs.xfs.speculative_prealloc_lifetime}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhM9hj$ubj=)}(hhh]h)}(hX(Units: seconds Min: 1 Default: 300 Max: 86400) The interval at which the background scanning for inodes with unused speculative preallocation runs. The scan removes unused preallocation from clean inodes and releases the unused space back to the free pool.h]hX(Units: seconds Min: 1 Default: 300 Max: 86400) The interval at which the background scanning for inodes with unused speculative preallocation runs. The scan removes unused preallocation from clean inodes and releases the unused space back to the free pool.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hj6ubah}(h]h ]h"]h$]h&]uh1j<hj$ubeh}(h]h ]h"]h$]h&]uh1j&hhhM9hj ubj')}(h]fs.xfs.speculative_cow_prealloc_lifetime This is an alias for speculative_prealloc_lifetime. h](j-)}(h(fs.xfs.speculative_cow_prealloc_lifetimeh]h(fs.xfs.speculative_cow_prealloc_lifetime}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhM<hjSubj=)}(hhh]h)}(h3This is an alias for speculative_prealloc_lifetime.h]h3This is an alias for speculative_prealloc_lifetime.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM<hjeubah}(h]h ]h"]h$]h&]uh1j<hjSubeh}(h]h ]h"]h$]h&]uh1j&hhhM<hj ubj')}(hXYfs.xfs.error_level (Min: 0 Default: 3 Max: 11) A volume knob for error reporting when internal errors occur. This will generate detailed messages & backtraces for filesystem shutdowns, for example. Current threshold values are: XFS_ERRLEVEL_OFF: 0 XFS_ERRLEVEL_LOW: 1 XFS_ERRLEVEL_HIGH: 5 h](j-)}(h;fs.xfs.error_level (Min: 0 Default: 3 Max: 11)h]h;fs.xfs.error_level (Min: 0 Default: 3 Max: 11)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMEhjubj=)}(hhh](h)}(hA volume knob for error reporting when internal errors occur. This will generate detailed messages & backtraces for filesystem shutdowns, for example. Current threshold values are:h]hA volume knob for error reporting when internal errors occur. This will generate detailed messages & backtraces for filesystem shutdowns, for example. Current threshold values are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM?hjubj)}(hNXFS_ERRLEVEL_OFF: 0 XFS_ERRLEVEL_LOW: 1 XFS_ERRLEVEL_HIGH: 5 h]h)}(hMXFS_ERRLEVEL_OFF: 0 XFS_ERRLEVEL_LOW: 1 XFS_ERRLEVEL_HIGH: 5h]hMXFS_ERRLEVEL_OFF: 0 XFS_ERRLEVEL_LOW: 1 XFS_ERRLEVEL_HIGH: 5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChjubah}(h]h ]h"]h$]h&]uh1jhhhMChjubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhMEhj ubj')}(hXfs.xfs.panic_mask (Min: 0 Default: 0 Max: 511) Causes certain error conditions to call BUG(). Value is a bitmask; OR together the tags which represent errors which should cause panics: XFS_NO_PTAG 0 XFS_PTAG_IFLUSH 0x00000001 XFS_PTAG_LOGRES 0x00000002 XFS_PTAG_AILDELETE 0x00000004 XFS_PTAG_ERROR_REPORT 0x00000008 XFS_PTAG_SHUTDOWN_CORRUPT 0x00000010 XFS_PTAG_SHUTDOWN_IOERROR 0x00000020 XFS_PTAG_SHUTDOWN_LOGERROR 0x00000040 XFS_PTAG_FSBLOCK_ZERO 0x00000080 XFS_PTAG_VERIFIER_ERROR 0x00000100 This option is intended for debugging only. h](j-)}(h/error/// h]h)}(h(/sys/fs/xfs//error///h]h(/sys/fs/xfs//error///}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhhhMhj)hhubj")}(hhh]j')}(hXWhere: The short device name of the mounted filesystem. This is the same device name that shows up in XFS kernel error messages as "XFS(): ..." The subsystem the error configuration belongs to. As of 4.9, the defined classes are: - "metadata": applies metadata buffer write IO The individual error handler configurations. h](j-)}(hWhere:h]hWhere:}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMhj?ubj=)}(hhh]j")}(hhh](j')}(h The short device name of the mounted filesystem. This is the same device name that shows up in XFS kernel error messages as "XFS(): ..." h](j-)}(hh]h}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMhjWubj=)}(hhh]h)}(hThe short device name of the mounted filesystem. This is the same device name that shows up in XFS kernel error messages as "XFS(): ..."h]hThe short device name of the mounted filesystem. This is the same device name that shows up in XFS kernel error messages as “XFS(): ...”}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjiubah}(h]h ]h"]h$]h&]uh1j<hjWubeh}(h]h ]h"]h$]h&]uh1j&hhhMhjTubj')}(h The subsystem the error configuration belongs to. As of 4.9, the defined classes are: - "metadata": applies metadata buffer write IO h](j-)}(hh]h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMhjubj=)}(hhh](h)}(hUThe subsystem the error configuration belongs to. As of 4.9, the defined classes are:h]hUThe subsystem the error configuration belongs to. As of 4.9, the defined classes are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj)}(h/- "metadata": applies metadata buffer write IO h]h bullet_list)}(hhh]h list_item)}(h-"metadata": applies metadata buffer write IO h]h)}(h,"metadata": applies metadata buffer write IOh]h0“metadata”: applies metadata buffer write IO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]bullet-uh1jhhhMhjubah}(h]h ]h"]h$]h&]uh1jhhhMhjubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhMhjTubj')}(h6 The individual error handler configurations. h](j-)}(hh]h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMhjubj=)}(hhh]h)}(h,The individual error handler configurations.h]h,The individual error handler configurations.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhMhjTubeh}(h]h ]h"]h$]h&]uh1j!hjQubah}(h]h ]h"]h$]h&]uh1j<hj?ubeh}(h]h ]h"]h$]h&]uh1j&hhhMhj<ubah}(h]h ]h"]h$]h&]uh1j!hj)hhhNhNubh)}(h^Each filesystem has "global" error configuration options defined in their top level directory:h]hbEach filesystem has “global” error configuration options defined in their top level directory:}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj)hhubj)}(hX/sys/fs/xfs//error/ fail_at_unmount (Min: 0 Default: 1 Max: 1) Defines the filesystem error behavior at unmount time. If set to a value of 1, XFS will override all other error configurations during unmount and replace them with "immediate fail" characteristics. i.e. no retries, no retry timeout. This will always allow unmount to succeed when there are persistent errors present. If set to 0, the configured retry behaviour will continue until all retries and/or timeouts have been exhausted. This will delay unmount completion when there are persistent errors, and it may prevent the filesystem from ever unmounting fully in the case of "retry forever" handler configurations. Note: there is no guarantee that fail_at_unmount can be set while an unmount is in progress. It is possible that the ``sysfs`` entries are removed by the unmounting filesystem before a "retry forever" error handler configuration causes unmount to hang, and hence the filesystem must be configured appropriately before unmount begins to prevent unmount hangs. h](h)}(h/sys/fs/xfs//error/h]h/sys/fs/xfs//error/}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj;ubj")}(hhh]j')}(hXfail_at_unmount (Min: 0 Default: 1 Max: 1) Defines the filesystem error behavior at unmount time. If set to a value of 1, XFS will override all other error configurations during unmount and replace them with "immediate fail" characteristics. i.e. no retries, no retry timeout. This will always allow unmount to succeed when there are persistent errors present. If set to 0, the configured retry behaviour will continue until all retries and/or timeouts have been exhausted. This will delay unmount completion when there are persistent errors, and it may prevent the filesystem from ever unmounting fully in the case of "retry forever" handler configurations. Note: there is no guarantee that fail_at_unmount can be set while an unmount is in progress. It is possible that the ``sysfs`` entries are removed by the unmounting filesystem before a "retry forever" error handler configuration causes unmount to hang, and hence the filesystem must be configured appropriately before unmount begins to prevent unmount hangs. h](j-)}(h/error/// max_retries (Min: -1 Default: Varies Max: INTMAX) Defines the allowed number of retries of a specific error before the filesystem will propagate the error. The retry count for a given error context (e.g. a specific metadata buffer) is reset every time there is a successful completion of the operation. Setting the value to "-1" will cause XFS to retry forever for this specific error. Setting the value to "0" will cause XFS to fail immediately when the specific error is reported. Setting the value to "N" (where 0 < N < Max) will make XFS retry the operation "N" times before propagating the error. retry_timeout_seconds (Min: -1 Default: Varies Max: 1 day) Define the amount of time (in seconds) that the filesystem is allowed to retry its operations when the specific error is found. Setting the value to "-1" will allow XFS to retry forever for this specific error. Setting the value to "0" will cause XFS to fail immediately when the specific error is reported. Setting the value to "N" (where 0 < N < Max) will allow XFS to retry the operation for up to "N" seconds before propagating the error. h](h)}(h(/sys/fs/xfs//error///h]h(/sys/fs/xfs//error///}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj")}(hhh](j')}(hXqmax_retries (Min: -1 Default: Varies Max: INTMAX) Defines the allowed number of retries of a specific error before the filesystem will propagate the error. The retry count for a given error context (e.g. a specific metadata buffer) is reset every time there is a successful completion of the operation. Setting the value to "-1" will cause XFS to retry forever for this specific error. Setting the value to "0" will cause XFS to fail immediately when the specific error is reported. Setting the value to "N" (where 0 < N < Max) will make XFS retry the operation "N" times before propagating the error. h](j-)}(hEmax_retries (Min: -1 Default: Varies Max: INTMAX)h]hEmax_retries (Min: -1 Default: Varies Max: INTMAX)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMhjubj=)}(hhh](h)}(hDefines the allowed number of retries of a specific error before the filesystem will propagate the error. The retry count for a given error context (e.g. a specific metadata buffer) is reset every time there is a successful completion of the operation.h]hDefines the allowed number of retries of a specific error before the filesystem will propagate the error. The retry count for a given error context (e.g. a specific metadata buffer) is reset every time there is a successful completion of the operation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(hRSetting the value to "-1" will cause XFS to retry forever for this specific error.h]hVSetting the value to “-1” will cause XFS to retry forever for this specific error.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(h`Setting the value to "0" will cause XFS to fail immediately when the specific error is reported.h]hdSetting the value to “0” will cause XFS to fail immediately when the specific error is reported.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(hvSetting the value to "N" (where 0 < N < Max) will make XFS retry the operation "N" times before propagating the error.h]h~Setting the value to “N” (where 0 < N < Max) will make XFS retry the operation “N” times before propagating the error.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubeh}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhMhjubj')}(hXretry_timeout_seconds (Min: -1 Default: Varies Max: 1 day) Define the amount of time (in seconds) that the filesystem is allowed to retry its operations when the specific error is found. Setting the value to "-1" will allow XFS to retry forever for this specific error. Setting the value to "0" will cause XFS to fail immediately when the specific error is reported. Setting the value to "N" (where 0 < N < Max) will allow XFS to retry the operation for up to "N" seconds before propagating the error. h](j-)}(hFretry_timeout_seconds (Min: -1 Default: Varies Max: 1 day)h]hFretry_timeout_seconds (Min: -1 Default: Varies Max: 1 day)}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhM hjCubj=)}(hhh](h)}(hDefine the amount of time (in seconds) that the filesystem is allowed to retry its operations when the specific error is found.h]hDefine the amount of time (in seconds) that the filesystem is allowed to retry its operations when the specific error is found.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjUubh)}(hRSetting the value to "-1" will allow XFS to retry forever for this specific error.h]hVSetting the value to “-1” will allow XFS to retry forever for this specific error.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjUubh)}(h`Setting the value to "0" will cause XFS to fail immediately when the specific error is reported.h]hdSetting the value to “0” will cause XFS to fail immediately when the specific error is reported.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjUubh)}(hSetting the value to "N" (where 0 < N < Max) will allow XFS to retry the operation for up to "N" seconds before propagating the error.h]hSetting the value to “N” (where 0 < N < Max) will allow XFS to retry the operation for up to “N” seconds before propagating the error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjUubeh}(h]h ]h"]h$]h&]uh1j<hjCubeh}(h]h ]h"]h$]h&]uh1j&hhhM hjubeh}(h]h ]h"]h$]h&]uh1j!hjubeh}(h]h ]h"]h$]h&]uh1jhhhMhj)hhubh)}(hXs**Note:** The default behaviour for a specific error handler is dependent on both the class and error context. For example, the default values for "metadata/ENODEV" are "0" rather than "-1" so that this error handler defaults to "fail immediately" behaviour. This is done because ENODEV is a fatal, unrecoverable error no matter how many times the metadata IO is retried.h](j_)}(h **Note:**h]hNote:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j^hjubhXz The default behaviour for a specific error handler is dependent on both the class and error context. For example, the default values for “metadata/ENODEV” are “0” rather than “-1” so that this error handler defaults to “fail immediately” behaviour. This is done because ENODEV is a fatal, unrecoverable error no matter how many times the metadata IO is retried.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj)hhubeh}(h]error-handlingah ]h"]error handlingah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hWorkqueue Concurrencyh]hWorkqueue Concurrency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hX&XFS uses kernel workqueues to parallelize metadata update processes. This enables it to take advantage of storage hardware that can service many IO operations simultaneously. This interface exposes internal implementation details of XFS, and as such is explicitly not part of any userspace API/ABI guarantee the kernel may give userspace. These are undocumented features of the generic workqueue implementation XFS uses for concurrency, and they are provided here purely for diagnostic and tuning purposes and may change at any time in the future.h]hX&XFS uses kernel workqueues to parallelize metadata update processes. This enables it to take advantage of storage hardware that can service many IO operations simultaneously. This interface exposes internal implementation details of XFS, and as such is explicitly not part of any userspace API/ABI guarantee the kernel may give userspace. These are undocumented features of the generic workqueue implementation XFS uses for concurrency, and they are provided here purely for diagnostic and tuning purposes and may change at any time in the future.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hThe control knobs for a filesystem's workqueues are organized by task at hand and the short name of the data device. They all can be found in:h]hThe control knobs for a filesystem’s workqueues are organized by task at hand and the short name of the data device. They all can be found in:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(h-/sys/bus/workqueue/devices/${task}!${device} h]h)}(h,/sys/bus/workqueue/devices/${task}!${device}h]h,/sys/bus/workqueue/devices/${task}!${device}}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hjubah}(h]h ]h"]h$]h&]uh1jhhhM"hjhhubj= )}(hhh]jB )}(hhh](jG )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jF hjubjG )}(hhh]h}(h]h ]h"]h$]h&]colwidthK:uh1jF hjubj] )}(hhh]jb )}(hhh](jg )}(hhh]h)}(hTaskh]hTask}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hj1ubah}(h]h ]h"]h$]h&]uh1jf hj.ubjg )}(hhh]h)}(h Descriptionh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hjHubah}(h]h ]h"]h$]h&]uh1jf hj.ubeh}(h]h ]h"]h$]h&]uh1ja hj+ubah}(h]h ]h"]h$]h&]uh1j\ hjubj )}(hhh](jb )}(hhh](jg )}(hhh]h)}(hxfs_iwalk-$pidh]hxfs_iwalk-$pid}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hjqubah}(h]h ]h"]h$]h&]uh1jf hjnubjg )}(hhh]h)}(hQInode scans of the entire filesystem. Currently limited to mount time quotacheck.h]hQInode scans of the entire filesystem. Currently limited to mount time quotacheck.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hjubah}(h]h ]h"]h$]h&]uh1jf hjnubeh}(h]h ]h"]h$]h&]uh1ja hjkubjb )}(hhh](jg )}(hhh]h)}(hxfs-gch]hxfs-gc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM)hjubah}(h]h ]h"]h$]h&]uh1jf hjubjg )}(hhh]h)}(hBackground garbage collection of disk space that have been speculatively allocated beyond EOF or for staging copy on write operations.h]hBackground garbage collection of disk space that have been speculatively allocated beyond EOF or for staging copy on write operations.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM)hjubah}(h]h ]h"]h$]h&]uh1jf hjubeh}(h]h ]h"]h$]h&]uh1ja hjkubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]colsKuh1jA hjubah}(h]h ]h"]h$]h&]uh1j< hjhhhhhNubh)}(hFor example, the knobs for the quotacheck workqueue for /dev/nvme0n1 would be found in /sys/bus/workqueue/devices/xfs_iwalk-1111!nvme0n1/.h]hFor example, the knobs for the quotacheck workqueue for /dev/nvme0n1 would be found in /sys/bus/workqueue/devices/xfs_iwalk-1111!nvme0n1/.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM.hjhhubh)}(h8The interesting knobs for XFS workqueues are as follows:h]h8The interesting knobs for XFS workqueues are as follows:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hjhhubj= )}(hhh]jB )}(hhh](jG )}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jF hjubjG )}(hhh]h}(h]h ]h"]h$]h&]colwidthKubh)}(h@For zoned file systems, the following attributes are exposed in:h]h@For zoned file systems, the following attributes are exposed in:}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM@hj(hhubj)}(hXx/sys/fs/xfs//zoned/ max_open_zones (Min: 1 Default: Varies Max: UINTMAX) This read-only attribute exposes the maximum number of open zones available for data placement. The value is determined at mount time and is limited by the capabilities of the backing zoned device, file system size and the max_open_zones mount option. zonegc_low_space (Min: 0 Default: 0 Max: 100) Define a percentage for how much of the unused space that GC should keep available for writing. A high value will reclaim more of the space occupied by unused blocks, creating a larger buffer against write bursts at the cost of increased write amplification. Regardless of this value, garbage collection will always aim to free a minimum amount of blocks to keep max_open_zones open for data placement purposes.h](h)}(h/sys/fs/xfs//zoned/h]h/sys/fs/xfs//zoned/}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMBhjGubj")}(hhh](j')}(hXEmax_open_zones (Min: 1 Default: Varies Max: UINTMAX) This read-only attribute exposes the maximum number of open zones available for data placement. The value is determined at mount time and is limited by the capabilities of the backing zoned device, file system size and the max_open_zones mount option. h](j-)}(hHmax_open_zones (Min: 1 Default: Varies Max: UINTMAX)h]hHmax_open_zones (Min: 1 Default: Varies Max: UINTMAX)}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMHhj\ubj=)}(hhh]h)}(hThis read-only attribute exposes the maximum number of open zones available for data placement. The value is determined at mount time and is limited by the capabilities of the backing zoned device, file system size and the max_open_zones mount option.h]hThis read-only attribute exposes the maximum number of open zones available for data placement. The value is determined at mount time and is limited by the capabilities of the backing zoned device, file system size and the max_open_zones mount option.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhjnubah}(h]h ]h"]h$]h&]uh1j<hj\ubeh}(h]h ]h"]h$]h&]uh1j&hhhMHhjYubj')}(hXzonegc_low_space (Min: 0 Default: 0 Max: 100) Define a percentage for how much of the unused space that GC should keep available for writing. A high value will reclaim more of the space occupied by unused blocks, creating a larger buffer against write bursts at the cost of increased write amplification. Regardless of this value, garbage collection will always aim to free a minimum amount of blocks to keep max_open_zones open for data placement purposes.h](j-)}(h?zonegc_low_space (Min: 0 Default: 0 Max: 100)h]h?zonegc_low_space (Min: 0 Default: 0 Max: 100)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j,hhhMOhjubj=)}(hhh]h)}(hXDefine a percentage for how much of the unused space that GC should keep available for writing. A high value will reclaim more of the space occupied by unused blocks, creating a larger buffer against write bursts at the cost of increased write amplification. Regardless of this value, garbage collection will always aim to free a minimum amount of blocks to keep max_open_zones open for data placement purposes.h]hXDefine a percentage for how much of the unused space that GC should keep available for writing. A high value will reclaim more of the space occupied by unused blocks, creating a larger buffer against write bursts at the cost of increased write amplification. Regardless of this value, garbage collection will always aim to free a minimum amount of blocks to keep max_open_zones open for data placement purposes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1j&hhhMOhjYubeh}(h]h ]h"]h$]h&]uh1j!hjGubeh}(h]h ]h"]h$]h&]uh1jhhhMBhj(hhubeh}(h]zoned-filesystemsah ]h"]zoned filesystemsah$]h&]uh1hhhhhhhhM>ubeh}(h]the-sgi-xfs-filesystemah ]h"]the sgi xfs filesystemah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjf footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjj j j( j% j j jn jk jjj/j,j&j#jjj%j"jju nametypes}(jj j( j jn jj/j&jj%juh}(jhj hj% j j j+ jk j jjq j,jj#j2jj)j"jjj(u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.