xref: /kernel/linux/linux-5.10/fs/xfs/Kconfig (revision 8c2ecf20)
18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig XFS_FS
38c2ecf20Sopenharmony_ci	tristate "XFS filesystem support"
48c2ecf20Sopenharmony_ci	depends on BLOCK
58c2ecf20Sopenharmony_ci	select EXPORTFS
68c2ecf20Sopenharmony_ci	select LIBCRC32C
78c2ecf20Sopenharmony_ci	select FS_IOMAP
88c2ecf20Sopenharmony_ci	help
98c2ecf20Sopenharmony_ci	  XFS is a high performance journaling filesystem which originated
108c2ecf20Sopenharmony_ci	  on the SGI IRIX platform.  It is completely multi-threaded, can
118c2ecf20Sopenharmony_ci	  support large files and large filesystems, extended attributes,
128c2ecf20Sopenharmony_ci	  variable block sizes, is extent based, and makes extensive use of
138c2ecf20Sopenharmony_ci	  Btrees (directories, extents, free space) to aid both performance
148c2ecf20Sopenharmony_ci	  and scalability.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	  Refer to the documentation at <http://oss.sgi.com/projects/xfs/>
178c2ecf20Sopenharmony_ci	  for complete details.  This implementation is on-disk compatible
188c2ecf20Sopenharmony_ci	  with the IRIX version of XFS.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	  To compile this file system support as a module, choose M here: the
218c2ecf20Sopenharmony_ci	  module will be called xfs.  Be aware, however, that if the file
228c2ecf20Sopenharmony_ci	  system of your root partition is compiled as a module, you'll need
238c2ecf20Sopenharmony_ci	  to use an initial ramdisk (initrd) to boot.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciconfig XFS_SUPPORT_V4
268c2ecf20Sopenharmony_ci	bool "Support deprecated V4 (crc=0) format"
278c2ecf20Sopenharmony_ci	depends on XFS_FS
288c2ecf20Sopenharmony_ci	default y
298c2ecf20Sopenharmony_ci	help
308c2ecf20Sopenharmony_ci	  The V4 filesystem format lacks certain features that are supported
318c2ecf20Sopenharmony_ci	  by the V5 format, such as metadata checksumming, strengthened
328c2ecf20Sopenharmony_ci	  metadata verification, and the ability to store timestamps past the
338c2ecf20Sopenharmony_ci	  year 2038.  Because of this, the V4 format is deprecated.  All users
348c2ecf20Sopenharmony_ci	  should upgrade by backing up their files, reformatting, and restoring
358c2ecf20Sopenharmony_ci	  from the backup.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci	  Administrators and users can detect a V4 filesystem by running
388c2ecf20Sopenharmony_ci	  xfs_info against a filesystem mountpoint and checking for a string
398c2ecf20Sopenharmony_ci	  beginning with "crc=".  If the string "crc=0" is found, the
408c2ecf20Sopenharmony_ci	  filesystem is a V4 filesystem.  If no such string is found, please
418c2ecf20Sopenharmony_ci	  upgrade xfsprogs to the latest version and try again.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci	  This option will become default N in September 2025.  Support for the
448c2ecf20Sopenharmony_ci	  V4 format will be removed entirely in September 2030.  Distributors
458c2ecf20Sopenharmony_ci	  can say N here to withdraw support earlier.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci	  To continue supporting the old V4 format (crc=0), say Y.
488c2ecf20Sopenharmony_ci	  To close off an attack surface, say N.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ciconfig XFS_QUOTA
518c2ecf20Sopenharmony_ci	bool "XFS Quota support"
528c2ecf20Sopenharmony_ci	depends on XFS_FS
538c2ecf20Sopenharmony_ci	select QUOTACTL
548c2ecf20Sopenharmony_ci	help
558c2ecf20Sopenharmony_ci	  If you say Y here, you will be able to set limits for disk usage on
568c2ecf20Sopenharmony_ci	  a per user and/or a per group basis under XFS.  XFS considers quota
578c2ecf20Sopenharmony_ci	  information as filesystem metadata and uses journaling to provide a
588c2ecf20Sopenharmony_ci	  higher level guarantee of consistency.  The on-disk data format for
598c2ecf20Sopenharmony_ci	  quota is also compatible with the IRIX version of XFS, allowing a
608c2ecf20Sopenharmony_ci	  filesystem to be migrated between Linux and IRIX without any need
618c2ecf20Sopenharmony_ci	  for conversion.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	  If unsure, say N.  More comprehensive documentation can be found in
648c2ecf20Sopenharmony_ci	  README.quota in the xfsprogs package.  XFS quota can be used either
658c2ecf20Sopenharmony_ci	  with or without the generic quota support enabled (CONFIG_QUOTA) -
668c2ecf20Sopenharmony_ci	  they are completely independent subsystems.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ciconfig XFS_POSIX_ACL
698c2ecf20Sopenharmony_ci	bool "XFS POSIX ACL support"
708c2ecf20Sopenharmony_ci	depends on XFS_FS
718c2ecf20Sopenharmony_ci	select FS_POSIX_ACL
728c2ecf20Sopenharmony_ci	help
738c2ecf20Sopenharmony_ci	  POSIX Access Control Lists (ACLs) support permissions for users and
748c2ecf20Sopenharmony_ci	  groups beyond the owner/group/world scheme.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci	  If you don't know what Access Control Lists are, say N.
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciconfig XFS_RT
798c2ecf20Sopenharmony_ci	bool "XFS Realtime subvolume support"
808c2ecf20Sopenharmony_ci	depends on XFS_FS
818c2ecf20Sopenharmony_ci	help
828c2ecf20Sopenharmony_ci	  If you say Y here you will be able to mount and use XFS filesystems
838c2ecf20Sopenharmony_ci	  which contain a realtime subvolume.  The realtime subvolume is a
848c2ecf20Sopenharmony_ci	  separate area of disk space where only file data is stored.  It was
858c2ecf20Sopenharmony_ci	  originally designed to provide deterministic data rates suitable
868c2ecf20Sopenharmony_ci	  for media streaming applications, but is also useful as a generic
878c2ecf20Sopenharmony_ci	  mechanism for ensuring data and metadata/log I/Os are completely
888c2ecf20Sopenharmony_ci	  separated.  Regular file I/Os are isolated to a separate device
898c2ecf20Sopenharmony_ci	  from all other requests, and this can be done quite transparently
908c2ecf20Sopenharmony_ci	  to applications via the inherit-realtime directory inode flag.
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci	  See the xfs man page in section 5 for additional information.
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci	  If unsure, say N.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciconfig XFS_ONLINE_SCRUB
978c2ecf20Sopenharmony_ci	bool "XFS online metadata check support"
988c2ecf20Sopenharmony_ci	default n
998c2ecf20Sopenharmony_ci	depends on XFS_FS
1008c2ecf20Sopenharmony_ci	help
1018c2ecf20Sopenharmony_ci	  If you say Y here you will be able to check metadata on a
1028c2ecf20Sopenharmony_ci	  mounted XFS filesystem.  This feature is intended to reduce
1038c2ecf20Sopenharmony_ci	  filesystem downtime by supplementing xfs_repair.  The key
1048c2ecf20Sopenharmony_ci	  advantage here is to look for problems proactively so that
1058c2ecf20Sopenharmony_ci	  they can be dealt with in a controlled manner.
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci	  This feature is considered EXPERIMENTAL.  Use with caution!
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	  See the xfs_scrub man page in section 8 for additional information.
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci	  If unsure, say N.
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ciconfig XFS_ONLINE_REPAIR
1148c2ecf20Sopenharmony_ci	bool "XFS online metadata repair support"
1158c2ecf20Sopenharmony_ci	default n
1168c2ecf20Sopenharmony_ci	depends on XFS_FS && XFS_ONLINE_SCRUB
1178c2ecf20Sopenharmony_ci	help
1188c2ecf20Sopenharmony_ci	  If you say Y here you will be able to repair metadata on a
1198c2ecf20Sopenharmony_ci	  mounted XFS filesystem.  This feature is intended to reduce
1208c2ecf20Sopenharmony_ci	  filesystem downtime by fixing minor problems before they cause the
1218c2ecf20Sopenharmony_ci	  filesystem to go down.  However, it requires that the filesystem be
1228c2ecf20Sopenharmony_ci	  formatted with secondary metadata, such as reverse mappings and inode
1238c2ecf20Sopenharmony_ci	  parent pointers.
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	  This feature is considered EXPERIMENTAL.  Use with caution!
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci	  See the xfs_scrub man page in section 8 for additional information.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci	  If unsure, say N.
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ciconfig XFS_WARN
1328c2ecf20Sopenharmony_ci	bool "XFS Verbose Warnings"
1338c2ecf20Sopenharmony_ci	depends on XFS_FS && !XFS_DEBUG
1348c2ecf20Sopenharmony_ci	help
1358c2ecf20Sopenharmony_ci	  Say Y here to get an XFS build with many additional warnings.
1368c2ecf20Sopenharmony_ci	  It converts ASSERT checks to WARN, so will log any out-of-bounds
1378c2ecf20Sopenharmony_ci	  conditions that occur that would otherwise be missed. It is much
1388c2ecf20Sopenharmony_ci	  lighter weight than XFS_DEBUG and does not modify algorithms and will
1398c2ecf20Sopenharmony_ci	  not cause the kernel to panic on non-fatal errors.
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci	  However, similar to XFS_DEBUG, it is only advisable to use this if you
1428c2ecf20Sopenharmony_ci	  are debugging a particular problem.
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ciconfig XFS_DEBUG
1458c2ecf20Sopenharmony_ci	bool "XFS Debugging support"
1468c2ecf20Sopenharmony_ci	depends on XFS_FS
1478c2ecf20Sopenharmony_ci	help
1488c2ecf20Sopenharmony_ci	  Say Y here to get an XFS build with many debugging features,
1498c2ecf20Sopenharmony_ci	  including ASSERT checks, function wrappers around macros,
1508c2ecf20Sopenharmony_ci	  and extra sanity-checking functions in various code paths.
1518c2ecf20Sopenharmony_ci
1528c2ecf20Sopenharmony_ci	  Note that the resulting code will be HUGE and SLOW, and probably
1538c2ecf20Sopenharmony_ci	  not useful unless you are debugging a particular problem.
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ci	  Say N unless you are an XFS developer, or you play one on TV.
1568c2ecf20Sopenharmony_ci
1578c2ecf20Sopenharmony_ciconfig XFS_ASSERT_FATAL
1588c2ecf20Sopenharmony_ci	bool "XFS fatal asserts"
1598c2ecf20Sopenharmony_ci	default y
1608c2ecf20Sopenharmony_ci	depends on XFS_FS && XFS_DEBUG
1618c2ecf20Sopenharmony_ci	help
1628c2ecf20Sopenharmony_ci	  Set the default DEBUG mode ASSERT failure behavior.
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci	  Say Y here to cause DEBUG mode ASSERT failures to result in fatal
1658c2ecf20Sopenharmony_ci	  errors that BUG() the kernel by default. If you say N, ASSERT failures
1668c2ecf20Sopenharmony_ci	  result in warnings.
1678c2ecf20Sopenharmony_ci
1688c2ecf20Sopenharmony_ci	  This behavior can be modified at runtime via sysfs.
169