| # SPDX-License-Identifier: GPL-2.0-only | |
| config XFS_FS | |
| tristate "XFS filesystem support" | |
| depends on BLOCK | |
| select EXPORTFS | |
| select CRC32 | |
| select FS_IOMAP | |
| help | |
| XFS 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. | |
| Refer to the documentation at <http://oss.sgi.com/projects/xfs/> | |
| for complete details. This implementation is on-disk compatible | |
| with the IRIX version of XFS. | |
| To compile this file system support as a module, choose M here: the | |
| module will be called xfs. Be aware, however, that if the file | |
| system of your root partition is compiled as a module, you'll need | |
| to use an initial ramdisk (initrd) to boot. | |
| config XFS_SUPPORT_V4 | |
| bool "Support deprecated V4 (crc=0) format" | |
| depends on XFS_FS | |
| default n | |
| help | |
| 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. | |
| Administrators and users can detect a V4 filesystem by running | |
| xfs_info against a filesystem mountpoint and checking for a string | |
| beginning with "crc=". If the string "crc=0" is found, the | |
| filesystem is a V4 filesystem. If no such string is found, please | |
| upgrade xfsprogs to the latest version and try again. | |
| This option became default N in September 2025. Support for the | |
| V4 format will be removed entirely in September 2030. Distributors | |
| can say N here to withdraw support earlier. | |
| To continue supporting the old V4 format (crc=0), say Y. | |
| To close off an attack surface, say N. | |
| config XFS_SUPPORT_ASCII_CI | |
| bool "Support deprecated case-insensitive ascii (ascii-ci=1) format" | |
| depends on XFS_FS | |
| default n | |
| help | |
| The ASCII case insensitivity filesystem feature only works correctly | |
| on systems that have been coerced into using ISO 8859-1, and it does | |
| not work on extended attributes. The kernel has no visibility into | |
| the locale settings in userspace, so it corrupts UTF-8 names. | |
| Enabling this feature makes XFS vulnerable to mixed case sensitivity | |
| attacks. Because of this, the feature is deprecated. All users | |
| should upgrade by backing up their files, reformatting, and restoring | |
| from the backup. | |
| Administrators and users can detect such a filesystem by running | |
| xfs_info against a filesystem mountpoint and checking for a string | |
| beginning with "ascii-ci=". If the string "ascii-ci=1" is found, the | |
| filesystem is a case-insensitive filesystem. If no such string is | |
| found, please upgrade xfsprogs to the latest version and try again. | |
| This option became default N in September 2025. Support for the | |
| feature will be removed entirely in September 2030. Distributors | |
| can say N here to withdraw support earlier. | |
| To continue supporting case-insensitivity (ascii-ci=1), say Y. | |
| To close off an attack surface, say N. | |
| config XFS_QUOTA | |
| bool "XFS Quota support" | |
| depends on XFS_FS | |
| select QUOTACTL | |
| help | |
| If you say Y here, you will be able to set limits for disk usage on | |
| a per user and/or a per group basis under XFS. XFS considers quota | |
| information as filesystem metadata and uses journaling to provide a | |
| higher level guarantee of consistency. The on-disk data format for | |
| quota is also compatible with the IRIX version of XFS, allowing a | |
| filesystem to be migrated between Linux and IRIX without any need | |
| for conversion. | |
| If unsure, say N. More comprehensive documentation can be found in | |
| README.quota in the xfsprogs package. XFS quota can be used either | |
| with or without the generic quota support enabled (CONFIG_QUOTA) - | |
| they are completely independent subsystems. | |
| config XFS_POSIX_ACL | |
| bool "XFS POSIX ACL support" | |
| depends on XFS_FS | |
| select FS_POSIX_ACL | |
| help | |
| POSIX Access Control Lists (ACLs) support permissions for users and | |
| groups beyond the owner/group/world scheme. | |
| If you don't know what Access Control Lists are, say N. | |
| config XFS_RT | |
| bool "XFS Realtime subvolume support" | |
| depends on XFS_FS | |
| default BLK_DEV_ZONED | |
| help | |
| If you say Y here you will be able to mount and use XFS filesystems | |
| which contain a realtime subvolume. The realtime subvolume is a | |
| separate area of disk space where only file data is stored. It was | |
| originally designed to provide deterministic data rates suitable | |
| for media streaming applications, but is also useful as a generic | |
| mechanism for ensuring data and metadata/log I/Os are completely | |
| separated. Regular file I/Os are isolated to a separate device | |
| from all other requests, and this can be done quite transparently | |
| to applications via the inherit-realtime directory inode flag. | |
| See the xfs man page in section 5 for additional information. | |
| If unsure, say N. | |
| config XFS_DRAIN_INTENTS | |
| bool | |
| select JUMP_LABEL if HAVE_ARCH_JUMP_LABEL | |
| config XFS_LIVE_HOOKS | |
| bool | |
| select JUMP_LABEL if HAVE_ARCH_JUMP_LABEL | |
| config XFS_MEMORY_BUFS | |
| bool | |
| config XFS_BTREE_IN_MEM | |
| bool | |
| config XFS_ONLINE_SCRUB | |
| bool "XFS online metadata check support" | |
| default y | |
| depends on XFS_FS | |
| depends on TMPFS && SHMEM | |
| select XFS_LIVE_HOOKS | |
| select XFS_DRAIN_INTENTS | |
| select XFS_MEMORY_BUFS | |
| help | |
| If you say Y here you will be able to check metadata on a | |
| mounted XFS filesystem. This feature is intended to reduce | |
| filesystem downtime by supplementing xfs_repair. The key | |
| advantage here is to look for problems proactively so that | |
| they can be dealt with in a controlled manner. | |
| See the xfs_scrub man page in section 8 for additional information. | |
| config XFS_ONLINE_SCRUB_STATS | |
| bool "XFS online metadata check usage data collection" | |
| default y | |
| depends on XFS_ONLINE_SCRUB | |
| select DEBUG_FS | |
| help | |
| If you say Y here, the kernel will gather usage data about | |
| the online metadata check subsystem. This includes the number | |
| of invocations, the outcomes, and the results of repairs, if any. | |
| This may slow down scrub slightly due to the use of high precision | |
| timers and the need to merge per-invocation information into the | |
| filesystem counters. | |
| Usage data are collected in /sys/kernel/debug/xfs/scrub. | |
| config XFS_ONLINE_REPAIR | |
| bool "XFS online metadata repair support" | |
| default y | |
| depends on XFS_FS && XFS_ONLINE_SCRUB | |
| select XFS_BTREE_IN_MEM | |
| help | |
| If you say Y here you will be able to repair metadata on a | |
| mounted XFS filesystem. This feature is intended to reduce | |
| filesystem downtime by fixing minor problems before they cause the | |
| filesystem to go down. However, it requires that the filesystem be | |
| formatted with secondary metadata, such as reverse mappings and inode | |
| parent pointers. | |
| See the xfs_scrub man page in section 8 for additional information. | |
| config XFS_WARN | |
| bool "XFS Verbose Warnings" | |
| depends on XFS_FS && !XFS_DEBUG | |
| help | |
| Say Y here to get an XFS build with many additional warnings. | |
| It converts ASSERT checks to WARN, so will log any out-of-bounds | |
| conditions that occur that would otherwise be missed. It is much | |
| lighter weight than XFS_DEBUG and does not modify algorithms and will | |
| not cause the kernel to panic on non-fatal errors. | |
| However, similar to XFS_DEBUG, it is only advisable to use this if you | |
| are debugging a particular problem. | |
| config XFS_DEBUG | |
| bool "XFS Debugging support" | |
| depends on XFS_FS | |
| help | |
| Say Y here to get an XFS build with many debugging features, | |
| including ASSERT checks, function wrappers around macros, | |
| and extra sanity-checking functions in various code paths. | |
| Note that the resulting code will be HUGE and SLOW, and probably | |
| not useful unless you are debugging a particular problem. | |
| Say N unless you are an XFS developer, or you play one on TV. | |
| config XFS_DEBUG_EXPENSIVE | |
| bool "XFS expensive debugging checks" | |
| depends on XFS_FS && XFS_DEBUG | |
| help | |
| Say Y here to get an XFS build with expensive debugging checks | |
| enabled. These checks may affect performance significantly. | |
| Note that the resulting code will be HUGER and SLOWER, and probably | |
| not useful unless you are debugging a particular problem. | |
| Say N unless you are an XFS developer, or you play one on TV. | |
| config XFS_ASSERT_FATAL | |
| bool "XFS fatal asserts" | |
| default y | |
| depends on XFS_FS && XFS_DEBUG | |
| help | |
| Set the default DEBUG mode ASSERT failure behavior. | |
| Say Y here to cause DEBUG mode ASSERT failures to result in fatal | |
| errors that BUG() the kernel by default. If you say N, ASSERT failures | |
| result in warnings. | |
| This behavior can be modified at runtime via sysfs. |