| # 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 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. |