| # SPDX-License-Identifier: GPL-2.0-only |
| config XFS_FS |
| tristate "XFS filesystem support" |
| depends on BLOCK |
| select EXPORTFS |
| select LIBCRC32C |
| 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 y |
| 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 will become 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 y |
| 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 will become 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 |
| 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 n |
| 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. |
| |
| This feature is considered EXPERIMENTAL. Use with caution! |
| |
| See the xfs_scrub man page in section 8 for additional information. |
| |
| If unsure, say N. |
| |
| 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. |
| |
| If unsure, say N. |
| |
| config XFS_ONLINE_REPAIR |
| bool "XFS online metadata repair support" |
| default n |
| 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. |
| |
| This feature is considered EXPERIMENTAL. Use with caution! |
| |
| See the xfs_scrub man page in section 8 for additional information. |
| |
| If unsure, say N. |
| |
| 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. |