]sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}(hhparenthuba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget#/translations/zh_CN/admin-guide/xfsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}(hhhh2ubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/zh_TW/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}(hhhhFubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/it_IT/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}(hhhhZubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ja_JP/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}(hhhhnubah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ko_KR/admin-guide/xfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}(hhhhubah}(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}(hhhhubah}(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}(hhhhhhhNhNubah}(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.}(hhhhhhhNhNubah}(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 }(hRefer to the documentation at hhhhhNhNubh reference)}(hhttps://xfs.wiki.kernel.org/h]hhttps://xfs.wiki.kernel.org/}(hhhhhhhNhNubah}(h]h ]h"]h$]h&]refurihuh1hhhubh^ for further details. This implementation is on-disk compatible with the IRIX version of XFS.}(h^ 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}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh block_quote)}(hhh]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}(hj1hj/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.}(hjDhjBhhhNhNubah}(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 }(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 hjPhhhNhNubhliteral)}(h ``allocsize``h]h allocsize}(hhhj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjPubh' value turns off the dynamic behaviour.}(h' value turns off the dynamic behaviour.hjPhhhNhNubeh}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhK3hjubj>)}(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 }(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 hjhhhNhNubjZ)}(h ``attr2``h]hattr2}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh 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 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 }(hOThe default behaviour is determined by the on-disk feature bit indicating that hjhhhNhNubjZ)}(h ``attr2``h]hattr2}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubhn behaviour is active. If either mount option is set, then that becomes the new default used by the filesystem.}(hn 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 }(h'CRC enabled filesystems always use the hjhhhNhNubjZ)}(h ``attr2``h]hattr2}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh format, and so will reject the }(h format, and so will reject the hjhhhNhNubjZ)}(h ``noattr2``h]hnoattr2}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh mount option if it is set.}(h mount option if it is set.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjubeh}(h]h ]h"]h$]h&]uh1j=hjubeh}(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)}(hj 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.}(hj1hj/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 }(h3Note: It is currently recommended that you use the hj=hhhNhNubjZ)}(h ``fstrim``h]hfstrim}(hhhjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj=ubh application to }(h application to hj=hhhNhNubjZ)}(h ``discard``h]hdiscard}(hhhjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj=ubh unused blocks rather than the }(h unused blocks rather than the hj=hhhNhNubjZ)}(h ``discard``h]hdiscard}(hhhjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj=ubhL mount option because the performance impact of this option is quite severe.}(hL mount option because the performance impact of this option is quite severe.hj=hhhNhNubeh}(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)}(hjhjhhhNhNubah}(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 }(hDThese options define what group ID a newly created file gets. When hjhhhNhNubjZ)}(h ``grpid``h]hgrpid}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh_ is set, it takes the group ID of the directory in which it is created; otherwise it takes the }(h_ is set, it takes the group ID of the directory in which it is created; otherwise it takes the hjhhhNhNubjZ)}(h ``fsgid``h]hfsgid}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh6 of the current process, unless the directory has the }(h6 of the current process, unless the directory has the hjhhhNhNubjZ)}(h ``setgid``h]hsetgid}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh% bit set, in which case it takes the }(h% bit set, in which case it takes the hjhhhNhNubjZ)}(h``gid``h]hgid}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh. from the parent directory, and also gets the }(h. from the parent directory, and also gets the hjhhhNhNubjZ)}(h ``setgid``h]hsetgid}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh% bit set if it is a directory itself.}(h% 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}(hj&hj$hhhNhNubah}(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.}(hj7hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj2ubah}(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)}(hjUhjShhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKRhjOubj>)}(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 }(hWhen hjdhhhNhNubjZ)}(h ``ikeep``h]hikeep}(hhhjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjdubh] is specified, XFS does not delete empty inode clusters and keeps them around on disk. When }(h] is specified, XFS does not delete empty inode clusters and keeps them around on disk. When hjdhhhNhNubjZ)}(h ``noikeep``h]hnoikeep}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjdubhH is specified, empty inode clusters are returned to the free space pool.}(hH is specified, empty inode clusters are returned to the free space pool.hjdhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKOhjaubah}(h]h ]h"]h$]h&]uh1j=hjOubeh}(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)}(hjhjhhhNhNubah}(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 }(hWhen hjhhhNhNubjZ)}(h ``inode32``h]hinode32}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh 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 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 }(hWhen hjhhhNhNubjZ)}(h ``inode64``h]hinode64}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh 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 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](jZ)}(h ``inode32``h]hinode32}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubhX 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 }(hX 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 hjhhhNhNubjZ)}(h ``inode32``h]hinode32}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh option should be specified.}(h 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@hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKqhj:ubj>)}(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 }(hIf hjOhhhNhNubjZ)}(h ``nolargeio``h]h nolargeio}(hhhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjOubh+ is specified, the optimal I/O reported in }(h+ is specified, the optimal I/O reported in hjOhhhNhNubjZ)}(h``st_blksize``h]h st_blksize}(hhhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjOubh by }(h by hjOhhhNhNubhstrong)}(h **stat(2)**h]hstat(2)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjOubh 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 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.hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKfhjLubh)}(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 }(hIf hjhhhNhNubjZ)}(h ``largeio``h]hlargeio}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh4 is specified, a filesystem that was created with a }(h4 is specified, a filesystem that was created with a hjhhhNhNubjZ)}(h ``swidth``h]hswidth}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh specified will return the }(h specified will return the hjhhhNhNubjZ)}(h ``swidth``h]hswidth}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh value (in bytes) in }(h value (in bytes) in hjhhhNhNubjZ)}(h``st_blksize``h]h st_blksize}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh$. If the filesystem does not have a }(h$. If the filesystem does not have a hjhhhNhNubjZ)}(h ``swidth``h]hswidth}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh specified but does specify an }(h specified but does specify an hjhhhNhNubjZ)}(h ``allocsize``h]h allocsize}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh then }(h then hjhhhNhNubjZ)}(h ``allocsize``h]h allocsize}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubhP (in bytes) will be returned instead. Otherwise the behaviour is the same as if }(hP (in bytes) will be returned instead. Otherwise the behaviour is the same as if hjhhhNhNubjZ)}(h ``nolargeio``h]h nolargeio}(hhhj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh was specified.}(h was specified.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKlhjLubeh}(h]h ]h"]h$]h&]uh1j=hj:ubeh}(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}(hjRhjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhK}hjLubj>)}(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.}(hjchjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj^ubh)}(hThe default value is 8 buffers.h]hThe default value is 8 buffers.}(hjqhjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhj^ubh)}(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 }(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 hj}hhhNhNubjZ)}(h ``logbsize``h]hlogbsize}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj}ubhT option below controls the size of each buffer and so is also relevant to this case.}(hT option below controls the size of each buffer and so is also relevant to this case.hj}hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKyhj^ubeh}(h]h ]h"]h$]h&]uh1j=hjLubeh}(h]h ]h"]h$]h&]uh1j'hhhK}hj$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}(hjhjhhhNhNubah}(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 }(hXjSet 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)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubh time.}(h 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).}(hjhjhhhNhNubah}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhjubj>)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(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}(hj1hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhj+ubj>)}(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 (}(hData allocations will not be aligned at stripe unit boundaries. This is only relevant to filesystems created with non-zero data alignment parameters (hj@hhhNhNubjZ)}(h ``sunit``h]hsunit}(hhhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj@ubh, }(h, hj@hhhNhNubjZ)}(h ``swidth``h]hswidth}(hhhj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj@ubh) by }(h) by hj@hhhNhNubj)}(h **mkfs(8)**h]hmkfs(8)}(hhhjohhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj@ubh.}(h.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()}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhjubj>)}(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 }(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 hjhhhNhNubjZ)}(h``norecovery``h]h norecovery}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh\ mode. Some files or directories may not be accessible because of this. Filesystems mounted }(h\ mode. Some files or directories may not be accessible because of this. Filesystems mounted hjhhhNhNubjZ)}(h``norecovery``h]h norecovery}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh2 must be mounted read-only or the mount will fail.}(h2 must be mounted read-only or the mount will fail.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhjubj>)}(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 }(hBDon't check for double mounted file systems using the file system hjhhhNhNubjZ)}(h``uuid``h]huuid}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubhT. This is useful to mount LVM snapshot volumes, and often used in combination with }(hT. This is useful to mount LVM snapshot volumes, and often used in combination with hjhhhNhNubjZ)}(h``norecovery``h]h norecovery}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh" for mounting read-only snapshots.}(h" for mounting read-only snapshots.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhKhj$ubj()}(hWnoquota Forcibly turns off all quota accounting and enforcement within the filesystem. h](j.)}(hnoquotah]hnoquota}(hjFhjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhj@ubj>)}(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.}(hjWhjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjRubah}(h]h ]h"]h$]h&]uh1j=hj@ubeh}(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}(hjuhjshhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhjoubj>)}(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 }(hPUser disk quota accounting enabled, and limits (optionally) enforced. Refer to hjhhhNhNubj)}(h**xfs_quota(8)**h]h xfs_quota(8)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubh for further details.}(h for further details.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j=hjoubeh}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhjubj>)}(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 }(hPGroup disk quota accounting enabled and limits (optionally) enforced. Refer to hjhhhNhNubj)}(h**xfs_quota(8)**h]h xfs_quota(8)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubh for further details.}(h 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()}(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}(hjhjhhhNhNubah}(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 }(hRProject disk quota accounting enabled and limits (optionally) enforced. Refer to hj hhhNhNubj)}(h**xfs_quota(8)**h]h xfs_quota(8)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj ubh for further details.}(h for further details.hj hhhNhNubeh}(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}(hj>hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhj8ubj>)}(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.}(hjOhjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJubh)}(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 }(hThe hj[hhhNhNubjZ)}(h ``sunit``h]hsunit}(hhhjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj[ubh and }(h and hj[hhhNhNubjZ)}(h ``swidth``h]hswidth}(hhhjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj[ubh parameters specified must be compatible with the existing filesystem alignment characteristics. In general, that means the only valid changes to }(h parameters specified must be compatible with the existing filesystem alignment characteristics. In general, that means the only valid changes to hj[hhhNhNubjZ)}(h ``sunit``h]hsunit}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj[ubh3 are increasing it by a power-of-2 multiple. Valid }(h3 are increasing it by a power-of-2 multiple. Valid hj[hhhNhNubjZ)}(h ``swidth``h]hswidth}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj[ubh, values are any integer multiple of a valid }(h, values are any integer multiple of a valid hj[hhhNhNubjZ)}(h ``sunit``h]hsunit}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj[ubh value.}(h value.hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjJubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJubeh}(h]h ]h"]h$]h&]uh1j=hj8ubeh}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhKhjubj>)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(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 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) 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&]uh1jhhhhhNhNubeh}(h] mount-optionsah ]h"] mount optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDeprecation of V4 Formath]hDeprecation of V4 Format}(hjZ hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU 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.}(hjh hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjU 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.}(hjv hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjU 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 hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjU 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 hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjU hhubeh}(h]deprecation-of-v4-formatah ]h"]deprecation of v4 formatah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDeprecated Mount Optionsh]hDeprecated Mount Options}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hNameh]hName}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hRemoval Scheduleh]hRemoval Schedule}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1j hj ubhtbody)}(hhh](j )}(hhh](j )}(hhh]h)}(hMounting with V4 filesystemh]hMounting with V4 filesystem}(hj* hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj% ubah}(h]h ]h"]h$]h&]uh1j hj" ubj )}(hhh]h)}(hSeptember 2030h]hSeptember 2030}(hjA hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj< ubah}(h]h ]h"]h$]h&]uh1j hj" ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hMounting ascii-ci filesystemh]hMounting ascii-ci filesystem}(hja hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj\ ubah}(h]h ]h"]h$]h&]uh1j hjY ubj )}(hhh]h)}(hSeptember 2030h]hSeptember 2030}(hjx hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjs ubah}(h]h ]h"]h$]h&]uh1j hjY ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h ikeep/noikeeph]h ikeep/noikeep}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hSeptember 2025h]hSeptember 2025}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h attr2/noattr2h]h attr2/noattr2}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hSeptember 2025h]hSeptember 2025}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]colsKuh1j hj ubah}(h]h ]h"]h$]h&]uh1j hj hhhhhNubeh}(h]deprecated-mount-optionsah ]h"]deprecated mount optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hRemoved Mount Optionsh]hRemoved Mount Options}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubj )}(hhh]j )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj- ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj- ubj )}(hhh]j )}(hhh](j )}(hhh]h)}(hNameh]hName}(hjO hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJ ubah}(h]h ]h"]h$]h&]uh1j hjG ubj )}(hhh]h)}(hRemovedh]hRemoved}(hjf hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhja ubah}(h]h ]h"]h$]h&]uh1j hjG ubeh}(h]h ]h"]h$]h&]uh1j hjD ubah}(h]h ]h"]h$]h&]uh1j hj- ubj )}(hhh](j )}(hhh](j )}(hhh]h)}(hdelaylog/nodelaylogh]hdelaylog/nodelaylog}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hv4.0h]hv4.0}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h ihashsizeh]h ihashsize}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hv4.0h]hv4.0}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hirixsgidh]hirixsgid}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hv4.0h]hv4.0}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hosyncisdsync/osyncisosynch]hosyncisdsync/osyncisosync}(hj4 hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj/ ubah}(h]h ]h"]h$]h&]uh1j hj, ubj )}(hhh]h)}(hv4.0h]hv4.0}(hjK hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjF ubah}(h]h ]h"]h$]h&]uh1j hj, ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hbarrierh]hbarrier}(hjk hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjf ubah}(h]h ]h"]h$]h&]uh1j hjc ubj )}(hhh]h)}(hv4.19h]hv4.19}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj} ubah}(h]h ]h"]h$]h&]uh1j hjc ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h nobarrierh]h nobarrier}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hv4.19h]hv4.19}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj- ubeh}(h]h ]h"]h$]h&]colsKuh1j hj* ubah}(h]h ]h"]h$]h&]uh1j hj hhhhhNubeh}(h]removed-mount-optionsah ]h"]removed mount optionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hsysctlsh]hsysctls}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(h;The following sysctls are available for the XFS filesystem:h]h;The following sysctls are available for the XFS filesystem:}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj hhubj)}(hhh]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 hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhj 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( hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj# ubah}(h]h ]h"]h$]h&]uh1j=hj ubeh}(h]h ]h"]h$]h&]uh1j'hhhMhj 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)}(hjF hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhj@ 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.}(hjW hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjR ubah}(h]h ]h"]h$]h&]uh1j=hj@ ubeh}(h]h ]h"]h$]h&]uh1j'hhhMhj 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)}(hju hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjo 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 hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j=hjo ubeh}(h]h ]h"]h$]h&]uh1j'hhhMhj 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 hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhj 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.}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1j=hj ubeh}(h]h ]h"]h$]h&]uh1j'hhhMhj 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}(hj hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhM!hj ubj>)}(hhh]h)}(h3This is an alias for speculative_prealloc_lifetime.h]h3This is an alias for speculative_prealloc_lifetime.}(hj 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()}(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)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhM*hj ubj>)}(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:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM$hjubj)}(hhh]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}(hj$hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j=hj ubeh}(h]h ]h"]h$]h&]uh1j'hhhM*hj 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)}(hhh](h)}(hCauses certain error conditions to call BUG(). Value is a bitmask; OR together the tags which represent errors which should cause panics:h]hCauses certain error conditions to call BUG(). Value is a bitmask; OR together the tags which represent errors which should cause panics:}(hjYhjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM-hjTubj)}(hhh]h)}(hXXFS_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 0x00000100h]hXXFS_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}(hjjhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM0hjeubah}(h]h ]h"]h$]h&]uh1jhjTubh)}(h+This option is intended for debugging only.h]h+This option is intended for debugging only.}(hj~hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM;hjTubeh}(h]h ]h"]h$]h&]uh1j=hjBubeh}(h]h ]h"]h$]h&]uh1j'hhhM;hj ubj()}(hfs.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). :h](j.)}(h:fs.xfs.irix_symlink_mode (Min: 0 Default: 0 Max: 1)h]h:fs.xfs.irix_symlink_mode (Min: 0 Default: 0 Max: 1)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhM?hjubj>)}(hhh]h)}(hzControls whether symlinks are created with mode 0777 (default) or whether their mode is affected by the umask (irix mode).h]hzControls whether symlinks are created with mode 0777 (default) or whether their mode is affected by the umask (irix mode).}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM>hjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhM?hj ubj()}(hX5fs.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. h](j.)}(h:fs.xfs.irix_sgid_inherit (Min: 0 Default: 0 Max: 1)h]h:fs.xfs.irix_sgid_inherit (Min: 0 Default: 0 Max: 1)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMFhjubj>)}(hhh]h)}(hControls 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.h]hControls 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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMBhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMFhj ubj()}(hfs.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. h](j.)}(h:fs.xfs.inherit_sync (Min: 0 Default: 1 Max: 1)h]h:fs.xfs.inherit_sync (Min: 0 Default: 1 Max: 1)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMKhjubj>)}(hhh]h)}(hSetting 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.h](hBSetting this to “1” will cause the “sync” flag set by the }(h:Setting this to "1" will cause the "sync" flag set by the hj hhhNhNubj)}(h **xfs_io(8)**h]h xfs_io(8)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj ubhJ chattr command on a directory to be inherited by files in that directory.}(hJ chattr command on a directory to be inherited by files in that directory.hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMIhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMKhj ubj()}(hfs.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. h](j.)}(h:fs.xfs.inherit_nodump (Min: 0 Default: 1 Max: 1)h]h:fs.xfs.inherit_nodump (Min: 0 Default: 1 Max: 1)}(hj=hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMPhj7ubj>)}(hhh]h)}(hSetting 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.h](hDSetting this to “1” will cause the “nodump” flag set by the }(h)}(hhh]h)}(hSetting 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.h](hESetting this to “1” will cause the “noatime” flag set by the }(h=Setting this to "1" will cause the "noatime" flag set by the hjhhhNhNubj)}(h **xfs_io(8)**h]h xfs_io(8)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubhJ chattr command on a directory to be inherited by files in that directory.}(hJ chattr command on a directory to be inherited by files in that directory.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMShjubah}(h]h ]h"]h$]h&]uh1j=hjzubeh}(h]h ]h"]h$]h&]uh1j'hhhMUhj ubj()}(hfs.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. h](j.)}(h:fs.xfs.inherit_nosymlinks (Min: 0 Default: 1 Max: 1)h]h:fs.xfs.inherit_nosymlinks (Min: 0 Default: 1 Max: 1)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMZhjubj>)}(hhh]h)}(hSetting 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.h](hHSetting this to “1” will cause the “nosymlinks” flag set by the }(h@Setting this to "1" will cause the "nosymlinks" flag set by the hjhhhNhNubj)}(h **xfs_io(8)**h]h xfs_io(8)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubhJ chattr command on a directory to be inherited by files in that directory.}(hJ chattr command on a directory to be inherited by files in that directory.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMXhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMZhj ubj()}(hfs.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. h](j.)}(h:fs.xfs.inherit_nodefrag (Min: 0 Default: 1 Max: 1)h]h:fs.xfs.inherit_nodefrag (Min: 0 Default: 1 Max: 1)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhM_hjubj>)}(hhh]h)}(hSetting 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.h](hFSetting this to “1” will cause the “nodefrag” flag set by the }(h>Setting this to "1" will cause the "nodefrag" flag set by the hjhhhNhNubj)}(h **xfs_io(8)**h]h xfs_io(8)}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j~hjubhJ chattr command on a directory to be inherited by files in that directory.}(hJ chattr command on a directory to be inherited by files in that directory.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM]hjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhM_hj ubj()}(hXnfs.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.)}(h)}(hhh]h)}(hX0In "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]hX4In “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.}(hjZhjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMbhjUubah}(h]h ]h"]h$]h&]uh1j=hjCubeh}(h]h ]h"]h$]h&]uh1j'hhhMfhj ubeh}(h]h ]h"]h$]h&]uh1j"hj ubah}(h]h ]h"]h$]h&]uh1jhj hhhNhNubeh}(h]sysctlsah ]h"]sysctlsah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hDeprecated Sysctlsh]hDeprecated Sysctls}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMiubj )}(hhh]j )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthK+uh1j hjubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hjubj )}(hhh]j )}(hhh](j )}(hhh]h)}(hNameh]hName}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(hRemoval Scheduleh]hRemoval Schedule}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh](j )}(hhh]h)}(hfs.xfs.irix_sgid_inherith]hfs.xfs.irix_sgid_inherit}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMnhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(hSeptember 2025h]hSeptember 2025}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMnhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh]h)}(hfs.xfs.irix_symlink_modeh]hfs.xfs.irix_symlink_mode}(hj3hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMohj.ubah}(h]h ]h"]h$]h&]uh1j hj+ubj )}(hhh]h)}(hSeptember 2025h]hSeptember 2025}(hjJhjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMohjEubah}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh]h)}(h(fs.xfs.speculative_cow_prealloc_lifetimeh]h(fs.xfs.speculative_cow_prealloc_lifetime}(hjjhjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMphjeubah}(h]h ]h"]h$]h&]uh1j hjbubj )}(hhh]h)}(hSeptember 2025h]hSeptember 2025}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMphj|ubah}(h]h ]h"]h$]h&]uh1j hjbubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]colsKuh1j hjubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubeh}(h]deprecated-sysctlsah ]h"]deprecated sysctlsah$]h&]uh1hhhhhhhhMiubh)}(hhh](h)}(hRemoved Sysctlsh]hRemoved Sysctls}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMuubj )}(hhh]j )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hjubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hjubj )}(hhh]j )}(hhh](j )}(hhh]h)}(hNameh]hName}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMxhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(hRemovedh]hRemoved}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMxhjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh](j )}(hhh]h)}(hfs.xfs.xfsbufd_centisech]hfs.xfs.xfsbufd_centisec}(hj*hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMzhj%ubah}(h]h ]h"]h$]h&]uh1j hj"ubj )}(hhh]h)}(hv4.0h]hv4.0}(hjAhj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMzhj<ubah}(h]h ]h"]h$]h&]uh1j hj"ubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh]h)}(hfs.xfs.age_buffer_centisecsh]hfs.xfs.age_buffer_centisecs}(hjahj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hj\ubah}(h]h ]h"]h$]h&]uh1j hjYubj )}(hhh]h)}(hv4.0h]hv4.0}(hjxhjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hjsubah}(h]h ]h"]h$]h&]uh1j hjYubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]colsKuh1j hjubah}(h]h ]h"]h$]h&]uh1j hjhhhhhNubeh}(h]removed-sysctlsah ]h"]removed sysctlsah$]h&]uh1hhhhhhhhMuubh)}(hhh](h)}(hError handlingh]hError handling}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hXFS can act differently according to the type of error found during its operation. The implementation introduces the following concepts to the error handler:h]hXFS can act differently according to the type of error found during its operation. The implementation introduces the following concepts to the error handler:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(hhh]j#)}(hhh](j()}(h-failure speed: Defines how fast XFS should propagate an error upwards when a specific error is found during the filesystem operation. It can propagate immediately, after a defined number of retries, after a set time period, or simply retry forever. h](j.)}(h-failure speed:h]h-failure speed:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjubj>)}(hhh]h)}(hDefines how fast XFS should propagate an error upwards when a specific error is found during the filesystem operation. It can propagate immediately, after a defined number of retries, after a set time period, or simply retry forever.h]hDefines how fast XFS should propagate an error upwards when a specific error is found during the filesystem operation. It can propagate immediately, after a defined number of retries, after a set time period, or simply retry forever.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubj()}(h-error classes: Specifies the subsystem the error configuration will apply to, such as metadata IO or memory allocation. Different subsystems will have different error handlers for which behaviour can be configured. h](j.)}(h-error classes:h]h-error classes:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjubj>)}(hhh]h)}(hSpecifies the subsystem the error configuration will apply to, such as metadata IO or memory allocation. Different subsystems will have different error handlers for which behaviour can be configured.h]hSpecifies the subsystem the error configuration will apply to, such as metadata IO or memory allocation. Different subsystems will have different error handlers for which behaviour can be configured.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubj()}(h<-error handlers: Defines the behavior for a specific error. h](j.)}(h-error handlers:h]h-error handlers:}(hj4hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhj.ubj>)}(hhh]h)}(h*Defines the behavior for a specific error.h]h*Defines the behavior for a specific error.}(hjEhjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj@ubah}(h]h ]h"]h$]h&]uh1j=hj.ubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubeh}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hThe filesystem behavior during an error can be set via ``sysfs`` files. Each error handler works independently - the first condition met by an error handler for a specific class will cause the error to be propagated rather than reset and retried.h](h7The filesystem behavior during an error can be set via }(h7The filesystem behavior during an error can be set via hjihhhNhNubjZ)}(h ``sysfs``h]hsysfs}(hhhjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjiubh files. Each error handler works independently - the first condition met by an error handler for a specific class will cause the error to be propagated rather than reset and retried.}(h files. Each error handler works independently - the first condition met by an error handler for a specific class will cause the error to be propagated rather than reset and retried.hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(hX@The action taken by the filesystem when the error is propagated is context dependent - it may cause a shut down in the case of an unrecoverable error, it may be reported back to userspace, or it may even be ignored because there's nothing useful we can with the error or anyone we can report it to (e.g. during unmount).h]hXBThe action taken by the filesystem when the error is propagated is context dependent - it may cause a shut down in the case of an unrecoverable error, it may be reported back to userspace, or it may even be ignored because there’s nothing useful we can with the error or anyone we can report it to (e.g. during unmount).}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubh)}(h_The configuration files are organized into the following hierarchy for each mounted filesystem:h]h_The configuration files are organized into the following hierarchy for each mounted filesystem:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(hhh]h)}(h(/sys/fs/xfs//error///h]h(/sys/fs/xfs//error///}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj#)}(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:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjubj>)}(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}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjubj>)}(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(): ...”}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubj()}(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}(hjhj hhhNhNubah}(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:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj)}(hhh]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}(hj;hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5ubah}(h]h ]h"]h$]h&]uh1j3hj0ubah}(h]h ]h"]h$]h&]bullet-uh1j.hhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubj()}(h6 The individual error handler configurations. h](j.)}(hh]h}(hjmhjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjgubj>)}(hhh]h)}(h,The individual error handler configurations.h]h,The individual error handler configurations.}(hj~hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjyubah}(h]h ]h"]h$]h&]uh1j=hjgubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubeh}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubah}(h]h ]h"]h$]h&]uh1j"hjhhhNhNubh)}(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:}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(hhh](h)}(h/sys/fs/xfs//error/h]h/sys/fs/xfs//error/}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubj#)}(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)}(hhh](h)}(h6Defines the filesystem error behavior at unmount time.h]h6Defines the filesystem error behavior at unmount time.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(hXIf 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.h]hX 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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(hX)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.h]hX-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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(hXfNote: 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](huNote: there is no guarantee that fail_at_unmount can be set while an unmount is in progress. It is possible that the }(huNote: there is no guarantee that fail_at_unmount can be set while an unmount is in progress. It is possible that the hjhhhNhNubjZ)}(h ``sysfs``h]hsysfs}(hhhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjubh 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 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.hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubeh}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjubah}(h]h ]h"]h$]h&]uh1j"hjubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(hXEach filesystem has specific error class handlers that define the error propagation behaviour for specific errors. There is also a "default" error handler defined, which defines the behaviour for all errors that don't have specific handlers defined. Where multiple retry constraints are configured for a single error, the first retry configuration that expires will cause the error to be propagated. The handler configurations are found in the directory:h]hXEach filesystem has specific error class handlers that define the error propagation behaviour for specific errors. There is also a “default” error handler defined, which defines the behaviour for all errors that don’t have specific handlers defined. Where multiple retry constraints are configured for a single error, the first retry configuration that expires will cause the error to be propagated. The handler configurations are found in the directory:}(hjKhjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubj)}(hhh](h)}(h(/sys/fs/xfs//error///h]h(/sys/fs/xfs//error///}(hj\hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjWubj#)}(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)}(hjqhjohhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjkubj>)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj}ubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj}ubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj}ubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj}ubeh}(h]h ]h"]h$]h&]uh1j=hjkubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjhubj()}(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)}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1j-hhhMhjubj>)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(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.}(hjhjhhhNhNubah}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubh)}(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.}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubeh}(h]h ]h"]h$]h&]uh1j=hjubeh}(h]h ]h"]h$]h&]uh1j'hhhMhjhubeh}(h]h ]h"]h$]h&]uh1j"hjWubeh}(h]h ]h"]h$]h&]uh1jhjhhhNhNubh)}(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:}(hhhj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j~hj)ubhXz 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.}(hXj 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.hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]error-handlingah ]h"]error handlingah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hWorkqueue Concurrencyh]hWorkqueue Concurrency}(hjShjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhhhhhMubh)}(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.}(hjahj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjNhhubh)}(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:}(hjohjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjNhhubj)}(hhh]h)}(h,/sys/bus/workqueue/devices/${task}!${device}h]h,/sys/bus/workqueue/devices/${task}!${device}}(hjhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj{ubah}(h]h ]h"]h$]h&]uh1jhjNhhhhhNubj )}(hhh]j )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hjubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthK:uh1j hjubj )}(hhh]j )}(hhh](j )}(hhh]h)}(hTaskh]hTask}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(h Descriptionh]h Description}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh](j )}(hhh]h)}(hxfs_iwalk-$pidh]hxfs_iwalk-$pid}(hjhjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(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.}(hjhj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j )}(hhh]h)}(hxfs-gch]hxfs-gc}(hj.hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1j hj&ubj )}(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.}(hjEhjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj@ubah}(h]h ]h"]h$]h&]uh1j hj&ubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]colsKuh1j hjubah}(h]h ]h"]h$]h&]uh1j hjNhhhhhNubh)}(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/.}(hjrhjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjNhhubh)}(h8The interesting knobs for XFS workqueues are as follows:h]h8The interesting knobs for XFS workqueues are as follows:}(hjhj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjNhhubj )}(hhh]j )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1j hjubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthK