244 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2config XFS_FS3 tristate "XFS filesystem support"4 depends on BLOCK5 select EXPORTFS6 select LIBCRC32C7 select FS_IOMAP8 help9 XFS is a high performance journaling filesystem which originated10 on the SGI IRIX platform. It is completely multi-threaded, can11 support large files and large filesystems, extended attributes,12 variable block sizes, is extent based, and makes extensive use of13 Btrees (directories, extents, free space) to aid both performance14 and scalability.15 16 Refer to the documentation at <http://oss.sgi.com/projects/xfs/>17 for complete details. This implementation is on-disk compatible18 with the IRIX version of XFS.19 20 To compile this file system support as a module, choose M here: the21 module will be called xfs. Be aware, however, that if the file22 system of your root partition is compiled as a module, you'll need23 to use an initial ramdisk (initrd) to boot.24 25config XFS_SUPPORT_V426 bool "Support deprecated V4 (crc=0) format"27 depends on XFS_FS28 default y29 help30 The V4 filesystem format lacks certain features that are supported31 by the V5 format, such as metadata checksumming, strengthened32 metadata verification, and the ability to store timestamps past the33 year 2038. Because of this, the V4 format is deprecated. All users34 should upgrade by backing up their files, reformatting, and restoring35 from the backup.36 37 Administrators and users can detect a V4 filesystem by running38 xfs_info against a filesystem mountpoint and checking for a string39 beginning with "crc=". If the string "crc=0" is found, the40 filesystem is a V4 filesystem. If no such string is found, please41 upgrade xfsprogs to the latest version and try again.42 43 This option will become default N in September 2025. Support for the44 V4 format will be removed entirely in September 2030. Distributors45 can say N here to withdraw support earlier.46 47 To continue supporting the old V4 format (crc=0), say Y.48 To close off an attack surface, say N.49 50config XFS_SUPPORT_ASCII_CI51 bool "Support deprecated case-insensitive ascii (ascii-ci=1) format"52 depends on XFS_FS53 default y54 help55 The ASCII case insensitivity filesystem feature only works correctly56 on systems that have been coerced into using ISO 8859-1, and it does57 not work on extended attributes. The kernel has no visibility into58 the locale settings in userspace, so it corrupts UTF-8 names.59 Enabling this feature makes XFS vulnerable to mixed case sensitivity60 attacks. Because of this, the feature is deprecated. All users61 should upgrade by backing up their files, reformatting, and restoring62 from the backup.63 64 Administrators and users can detect such a filesystem by running65 xfs_info against a filesystem mountpoint and checking for a string66 beginning with "ascii-ci=". If the string "ascii-ci=1" is found, the67 filesystem is a case-insensitive filesystem. If no such string is68 found, please upgrade xfsprogs to the latest version and try again.69 70 This option will become default N in September 2025. Support for the71 feature will be removed entirely in September 2030. Distributors72 can say N here to withdraw support earlier.73 74 To continue supporting case-insensitivity (ascii-ci=1), say Y.75 To close off an attack surface, say N.76 77config XFS_QUOTA78 bool "XFS Quota support"79 depends on XFS_FS80 select QUOTACTL81 help82 If you say Y here, you will be able to set limits for disk usage on83 a per user and/or a per group basis under XFS. XFS considers quota84 information as filesystem metadata and uses journaling to provide a85 higher level guarantee of consistency. The on-disk data format for86 quota is also compatible with the IRIX version of XFS, allowing a87 filesystem to be migrated between Linux and IRIX without any need88 for conversion.89 90 If unsure, say N. More comprehensive documentation can be found in91 README.quota in the xfsprogs package. XFS quota can be used either92 with or without the generic quota support enabled (CONFIG_QUOTA) -93 they are completely independent subsystems.94 95config XFS_POSIX_ACL96 bool "XFS POSIX ACL support"97 depends on XFS_FS98 select FS_POSIX_ACL99 help100 POSIX Access Control Lists (ACLs) support permissions for users and101 groups beyond the owner/group/world scheme.102 103 If you don't know what Access Control Lists are, say N.104 105config XFS_RT106 bool "XFS Realtime subvolume support"107 depends on XFS_FS108 help109 If you say Y here you will be able to mount and use XFS filesystems110 which contain a realtime subvolume. The realtime subvolume is a111 separate area of disk space where only file data is stored. It was112 originally designed to provide deterministic data rates suitable113 for media streaming applications, but is also useful as a generic114 mechanism for ensuring data and metadata/log I/Os are completely115 separated. Regular file I/Os are isolated to a separate device116 from all other requests, and this can be done quite transparently117 to applications via the inherit-realtime directory inode flag.118 119 See the xfs man page in section 5 for additional information.120 121 If unsure, say N.122 123config XFS_DRAIN_INTENTS124 bool125 select JUMP_LABEL if HAVE_ARCH_JUMP_LABEL126 127config XFS_LIVE_HOOKS128 bool129 select JUMP_LABEL if HAVE_ARCH_JUMP_LABEL130 131config XFS_MEMORY_BUFS132 bool133 134config XFS_BTREE_IN_MEM135 bool136 137config XFS_ONLINE_SCRUB138 bool "XFS online metadata check support"139 default n140 depends on XFS_FS141 depends on TMPFS && SHMEM142 select XFS_LIVE_HOOKS143 select XFS_DRAIN_INTENTS144 select XFS_MEMORY_BUFS145 help146 If you say Y here you will be able to check metadata on a147 mounted XFS filesystem. This feature is intended to reduce148 filesystem downtime by supplementing xfs_repair. The key149 advantage here is to look for problems proactively so that150 they can be dealt with in a controlled manner.151 152 This feature is considered EXPERIMENTAL. Use with caution!153 154 See the xfs_scrub man page in section 8 for additional information.155 156 If unsure, say N.157 158config XFS_ONLINE_SCRUB_STATS159 bool "XFS online metadata check usage data collection"160 default y161 depends on XFS_ONLINE_SCRUB162 select DEBUG_FS163 help164 If you say Y here, the kernel will gather usage data about165 the online metadata check subsystem. This includes the number166 of invocations, the outcomes, and the results of repairs, if any.167 This may slow down scrub slightly due to the use of high precision168 timers and the need to merge per-invocation information into the169 filesystem counters.170 171 Usage data are collected in /sys/kernel/debug/xfs/scrub.172 173 If unsure, say N.174 175config XFS_ONLINE_REPAIR176 bool "XFS online metadata repair support"177 default n178 depends on XFS_FS && XFS_ONLINE_SCRUB179 select XFS_BTREE_IN_MEM180 help181 If you say Y here you will be able to repair metadata on a182 mounted XFS filesystem. This feature is intended to reduce183 filesystem downtime by fixing minor problems before they cause the184 filesystem to go down. However, it requires that the filesystem be185 formatted with secondary metadata, such as reverse mappings and inode186 parent pointers.187 188 This feature is considered EXPERIMENTAL. Use with caution!189 190 See the xfs_scrub man page in section 8 for additional information.191 192 If unsure, say N.193 194config XFS_WARN195 bool "XFS Verbose Warnings"196 depends on XFS_FS && !XFS_DEBUG197 help198 Say Y here to get an XFS build with many additional warnings.199 It converts ASSERT checks to WARN, so will log any out-of-bounds200 conditions that occur that would otherwise be missed. It is much201 lighter weight than XFS_DEBUG and does not modify algorithms and will202 not cause the kernel to panic on non-fatal errors.203 204 However, similar to XFS_DEBUG, it is only advisable to use this if you205 are debugging a particular problem.206 207config XFS_DEBUG208 bool "XFS Debugging support"209 depends on XFS_FS210 help211 Say Y here to get an XFS build with many debugging features,212 including ASSERT checks, function wrappers around macros,213 and extra sanity-checking functions in various code paths.214 215 Note that the resulting code will be HUGE and SLOW, and probably216 not useful unless you are debugging a particular problem.217 218 Say N unless you are an XFS developer, or you play one on TV.219 220config XFS_DEBUG_EXPENSIVE221 bool "XFS expensive debugging checks"222 depends on XFS_FS && XFS_DEBUG223 help224 Say Y here to get an XFS build with expensive debugging checks225 enabled. These checks may affect performance significantly.226 227 Note that the resulting code will be HUGER and SLOWER, and probably228 not useful unless you are debugging a particular problem.229 230 Say N unless you are an XFS developer, or you play one on TV.231 232config XFS_ASSERT_FATAL233 bool "XFS fatal asserts"234 default y235 depends on XFS_FS && XFS_DEBUG236 help237 Set the default DEBUG mode ASSERT failure behavior.238 239 Say Y here to cause DEBUG mode ASSERT failures to result in fatal240 errors that BUG() the kernel by default. If you say N, ASSERT failures241 result in warnings.242 243 This behavior can be modified at runtime via sysfs.244