0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config XFS_FS
0003 tristate "XFS filesystem support"
0004 depends on BLOCK
0005 select EXPORTFS
0006 select LIBCRC32C
0007 select FS_IOMAP
0008 help
0009 XFS is a high performance journaling filesystem which originated
0010 on the SGI IRIX platform. It is completely multi-threaded, can
0011 support large files and large filesystems, extended attributes,
0012 variable block sizes, is extent based, and makes extensive use of
0013 Btrees (directories, extents, free space) to aid both performance
0014 and scalability.
0015
0016 Refer to the documentation at <http://oss.sgi.com/projects/xfs/>
0017 for complete details. This implementation is on-disk compatible
0018 with the IRIX version of XFS.
0019
0020 To compile this file system support as a module, choose M here: the
0021 module will be called xfs. Be aware, however, that if the file
0022 system of your root partition is compiled as a module, you'll need
0023 to use an initial ramdisk (initrd) to boot.
0024
0025 config XFS_SUPPORT_V4
0026 bool "Support deprecated V4 (crc=0) format"
0027 depends on XFS_FS
0028 default y
0029 help
0030 The V4 filesystem format lacks certain features that are supported
0031 by the V5 format, such as metadata checksumming, strengthened
0032 metadata verification, and the ability to store timestamps past the
0033 year 2038. Because of this, the V4 format is deprecated. All users
0034 should upgrade by backing up their files, reformatting, and restoring
0035 from the backup.
0036
0037 Administrators and users can detect a V4 filesystem by running
0038 xfs_info against a filesystem mountpoint and checking for a string
0039 beginning with "crc=". If the string "crc=0" is found, the
0040 filesystem is a V4 filesystem. If no such string is found, please
0041 upgrade xfsprogs to the latest version and try again.
0042
0043 This option will become default N in September 2025. Support for the
0044 V4 format will be removed entirely in September 2030. Distributors
0045 can say N here to withdraw support earlier.
0046
0047 To continue supporting the old V4 format (crc=0), say Y.
0048 To close off an attack surface, say N.
0049
0050 config XFS_QUOTA
0051 bool "XFS Quota support"
0052 depends on XFS_FS
0053 select QUOTACTL
0054 help
0055 If you say Y here, you will be able to set limits for disk usage on
0056 a per user and/or a per group basis under XFS. XFS considers quota
0057 information as filesystem metadata and uses journaling to provide a
0058 higher level guarantee of consistency. The on-disk data format for
0059 quota is also compatible with the IRIX version of XFS, allowing a
0060 filesystem to be migrated between Linux and IRIX without any need
0061 for conversion.
0062
0063 If unsure, say N. More comprehensive documentation can be found in
0064 README.quota in the xfsprogs package. XFS quota can be used either
0065 with or without the generic quota support enabled (CONFIG_QUOTA) -
0066 they are completely independent subsystems.
0067
0068 config XFS_POSIX_ACL
0069 bool "XFS POSIX ACL support"
0070 depends on XFS_FS
0071 select FS_POSIX_ACL
0072 help
0073 POSIX Access Control Lists (ACLs) support permissions for users and
0074 groups beyond the owner/group/world scheme.
0075
0076 If you don't know what Access Control Lists are, say N.
0077
0078 config XFS_RT
0079 bool "XFS Realtime subvolume support"
0080 depends on XFS_FS
0081 help
0082 If you say Y here you will be able to mount and use XFS filesystems
0083 which contain a realtime subvolume. The realtime subvolume is a
0084 separate area of disk space where only file data is stored. It was
0085 originally designed to provide deterministic data rates suitable
0086 for media streaming applications, but is also useful as a generic
0087 mechanism for ensuring data and metadata/log I/Os are completely
0088 separated. Regular file I/Os are isolated to a separate device
0089 from all other requests, and this can be done quite transparently
0090 to applications via the inherit-realtime directory inode flag.
0091
0092 See the xfs man page in section 5 for additional information.
0093
0094 If unsure, say N.
0095
0096 config XFS_ONLINE_SCRUB
0097 bool "XFS online metadata check support"
0098 default n
0099 depends on XFS_FS
0100 help
0101 If you say Y here you will be able to check metadata on a
0102 mounted XFS filesystem. This feature is intended to reduce
0103 filesystem downtime by supplementing xfs_repair. The key
0104 advantage here is to look for problems proactively so that
0105 they can be dealt with in a controlled manner.
0106
0107 This feature is considered EXPERIMENTAL. Use with caution!
0108
0109 See the xfs_scrub man page in section 8 for additional information.
0110
0111 If unsure, say N.
0112
0113 config XFS_ONLINE_REPAIR
0114 bool "XFS online metadata repair support"
0115 default n
0116 depends on XFS_FS && XFS_ONLINE_SCRUB
0117 help
0118 If you say Y here you will be able to repair metadata on a
0119 mounted XFS filesystem. This feature is intended to reduce
0120 filesystem downtime by fixing minor problems before they cause the
0121 filesystem to go down. However, it requires that the filesystem be
0122 formatted with secondary metadata, such as reverse mappings and inode
0123 parent pointers.
0124
0125 This feature is considered EXPERIMENTAL. Use with caution!
0126
0127 See the xfs_scrub man page in section 8 for additional information.
0128
0129 If unsure, say N.
0130
0131 config XFS_WARN
0132 bool "XFS Verbose Warnings"
0133 depends on XFS_FS && !XFS_DEBUG
0134 help
0135 Say Y here to get an XFS build with many additional warnings.
0136 It converts ASSERT checks to WARN, so will log any out-of-bounds
0137 conditions that occur that would otherwise be missed. It is much
0138 lighter weight than XFS_DEBUG and does not modify algorithms and will
0139 not cause the kernel to panic on non-fatal errors.
0140
0141 However, similar to XFS_DEBUG, it is only advisable to use this if you
0142 are debugging a particular problem.
0143
0144 config XFS_DEBUG
0145 bool "XFS Debugging support"
0146 depends on XFS_FS
0147 help
0148 Say Y here to get an XFS build with many debugging features,
0149 including ASSERT checks, function wrappers around macros,
0150 and extra sanity-checking functions in various code paths.
0151
0152 Note that the resulting code will be HUGE and SLOW, and probably
0153 not useful unless you are debugging a particular problem.
0154
0155 Say N unless you are an XFS developer, or you play one on TV.
0156
0157 config XFS_ASSERT_FATAL
0158 bool "XFS fatal asserts"
0159 default y
0160 depends on XFS_FS && XFS_DEBUG
0161 help
0162 Set the default DEBUG mode ASSERT failure behavior.
0163
0164 Say Y here to cause DEBUG mode ASSERT failures to result in fatal
0165 errors that BUG() the kernel by default. If you say N, ASSERT failures
0166 result in warnings.
0167
0168 This behavior can be modified at runtime via sysfs.