^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) config XFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) tristate "XFS filesystem support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) depends on BLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) select EXPORTFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) select LIBCRC32C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) select FS_IOMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) XFS is a high performance journaling filesystem which originated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) on the SGI IRIX platform. It is completely multi-threaded, can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) support large files and large filesystems, extended attributes,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) variable block sizes, is extent based, and makes extensive use of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) Btrees (directories, extents, free space) to aid both performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) and scalability.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Refer to the documentation at <http://oss.sgi.com/projects/xfs/>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) for complete details. This implementation is on-disk compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) with the IRIX version of XFS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) To compile this file system support as a module, choose M here: the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) module will be called xfs. Be aware, however, that if the file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) system of your root partition is compiled as a module, you'll need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) to use an initial ramdisk (initrd) to boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) config XFS_SUPPORT_V4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) bool "Support deprecated V4 (crc=0) format"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) depends on XFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) The V4 filesystem format lacks certain features that are supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) by the V5 format, such as metadata checksumming, strengthened
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) metadata verification, and the ability to store timestamps past the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) year 2038. Because of this, the V4 format is deprecated. All users
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) should upgrade by backing up their files, reformatting, and restoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) from the backup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) Administrators and users can detect a V4 filesystem by running
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) xfs_info against a filesystem mountpoint and checking for a string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) beginning with "crc=". If the string "crc=0" is found, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) filesystem is a V4 filesystem. If no such string is found, please
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) upgrade xfsprogs to the latest version and try again.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) This option will become default N in September 2025. Support for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) V4 format will be removed entirely in September 2030. Distributors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) can say N here to withdraw support earlier.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) To continue supporting the old V4 format (crc=0), say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) To close off an attack surface, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) config XFS_QUOTA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) bool "XFS Quota support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) depends on XFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) select QUOTACTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) If you say Y here, you will be able to set limits for disk usage on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) a per user and/or a per group basis under XFS. XFS considers quota
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) information as filesystem metadata and uses journaling to provide a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) higher level guarantee of consistency. The on-disk data format for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) quota is also compatible with the IRIX version of XFS, allowing a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) filesystem to be migrated between Linux and IRIX without any need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) for conversion.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) If unsure, say N. More comprehensive documentation can be found in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) README.quota in the xfsprogs package. XFS quota can be used either
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) with or without the generic quota support enabled (CONFIG_QUOTA) -
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) they are completely independent subsystems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) config XFS_POSIX_ACL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) bool "XFS POSIX ACL support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) depends on XFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) select FS_POSIX_ACL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) POSIX Access Control Lists (ACLs) support permissions for users and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) groups beyond the owner/group/world scheme.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) If you don't know what Access Control Lists are, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) config XFS_RT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) bool "XFS Realtime subvolume support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) depends on XFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) If you say Y here you will be able to mount and use XFS filesystems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) which contain a realtime subvolume. The realtime subvolume is a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) separate area of disk space where only file data is stored. It was
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) originally designed to provide deterministic data rates suitable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) for media streaming applications, but is also useful as a generic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) mechanism for ensuring data and metadata/log I/Os are completely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) separated. Regular file I/Os are isolated to a separate device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) from all other requests, and this can be done quite transparently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) to applications via the inherit-realtime directory inode flag.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) See the xfs man page in section 5 for additional information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) config XFS_ONLINE_SCRUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) bool "XFS online metadata check support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) depends on XFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) If you say Y here you will be able to check metadata on a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) mounted XFS filesystem. This feature is intended to reduce
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) filesystem downtime by supplementing xfs_repair. The key
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) advantage here is to look for problems proactively so that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) they can be dealt with in a controlled manner.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) This feature is considered EXPERIMENTAL. Use with caution!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) See the xfs_scrub man page in section 8 for additional information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) config XFS_ONLINE_REPAIR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) bool "XFS online metadata repair support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) depends on XFS_FS && XFS_ONLINE_SCRUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) If you say Y here you will be able to repair metadata on a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) mounted XFS filesystem. This feature is intended to reduce
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) filesystem downtime by fixing minor problems before they cause the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) filesystem to go down. However, it requires that the filesystem be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) formatted with secondary metadata, such as reverse mappings and inode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) parent pointers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) This feature is considered EXPERIMENTAL. Use with caution!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) See the xfs_scrub man page in section 8 for additional information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) config XFS_WARN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) bool "XFS Verbose Warnings"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) depends on XFS_FS && !XFS_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) Say Y here to get an XFS build with many additional warnings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) It converts ASSERT checks to WARN, so will log any out-of-bounds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) conditions that occur that would otherwise be missed. It is much
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) lighter weight than XFS_DEBUG and does not modify algorithms and will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) not cause the kernel to panic on non-fatal errors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) However, similar to XFS_DEBUG, it is only advisable to use this if you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) are debugging a particular problem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) config XFS_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) bool "XFS Debugging support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) depends on XFS_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) Say Y here to get an XFS build with many debugging features,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) including ASSERT checks, function wrappers around macros,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) and extra sanity-checking functions in various code paths.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) Note that the resulting code will be HUGE and SLOW, and probably
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) not useful unless you are debugging a particular problem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) Say N unless you are an XFS developer, or you play one on TV.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) config XFS_ASSERT_FATAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) bool "XFS fatal asserts"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) depends on XFS_FS && XFS_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) Set the default DEBUG mode ASSERT failure behavior.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) Say Y here to cause DEBUG mode ASSERT failures to result in fatal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) errors that BUG() the kernel by default. If you say N, ASSERT failures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) result in warnings.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) This behavior can be modified at runtime via sysfs.