xref: /kernel/linux/linux-5.10/fs/btrfs/Kconfig (revision 8c2ecf20)
18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciconfig BTRFS_FS
48c2ecf20Sopenharmony_ci	tristate "Btrfs filesystem support"
58c2ecf20Sopenharmony_ci	select CRYPTO
68c2ecf20Sopenharmony_ci	select CRYPTO_CRC32C
78c2ecf20Sopenharmony_ci	select LIBCRC32C
88c2ecf20Sopenharmony_ci	select CRYPTO_XXHASH
98c2ecf20Sopenharmony_ci	select CRYPTO_SHA256
108c2ecf20Sopenharmony_ci	select CRYPTO_BLAKE2B
118c2ecf20Sopenharmony_ci	select ZLIB_INFLATE
128c2ecf20Sopenharmony_ci	select ZLIB_DEFLATE
138c2ecf20Sopenharmony_ci	select LZO_COMPRESS
148c2ecf20Sopenharmony_ci	select LZO_DECOMPRESS
158c2ecf20Sopenharmony_ci	select ZSTD_COMPRESS
168c2ecf20Sopenharmony_ci	select ZSTD_DECOMPRESS
178c2ecf20Sopenharmony_ci	select FS_IOMAP
188c2ecf20Sopenharmony_ci	select RAID6_PQ
198c2ecf20Sopenharmony_ci	select XOR_BLOCKS
208c2ecf20Sopenharmony_ci	select SRCU
218c2ecf20Sopenharmony_ci	depends on !PPC_256K_PAGES	# powerpc
228c2ecf20Sopenharmony_ci	depends on !PAGE_SIZE_256KB	# hexagon
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci	help
258c2ecf20Sopenharmony_ci	  Btrfs is a general purpose copy-on-write filesystem with extents,
268c2ecf20Sopenharmony_ci	  writable snapshotting, support for multiple devices and many more
278c2ecf20Sopenharmony_ci	  features focused on fault tolerance, repair and easy administration.
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	  The filesystem disk format is no longer unstable, and it's not
308c2ecf20Sopenharmony_ci	  expected to change unless there are strong reasons to do so. If there
318c2ecf20Sopenharmony_ci	  is a format change, file systems with a unchanged format will
328c2ecf20Sopenharmony_ci	  continue to be mountable and usable by newer kernels.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci	  For more information, please see the web pages at
358c2ecf20Sopenharmony_ci	  http://btrfs.wiki.kernel.org.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci	  To compile this file system support as a module, choose M here. The
388c2ecf20Sopenharmony_ci	  module will be called btrfs.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci	  If unsure, say N.
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciconfig BTRFS_FS_POSIX_ACL
438c2ecf20Sopenharmony_ci	bool "Btrfs POSIX Access Control Lists"
448c2ecf20Sopenharmony_ci	depends on BTRFS_FS
458c2ecf20Sopenharmony_ci	select FS_POSIX_ACL
468c2ecf20Sopenharmony_ci	help
478c2ecf20Sopenharmony_ci	  POSIX Access Control Lists (ACLs) support permissions for users and
488c2ecf20Sopenharmony_ci	  groups beyond the owner/group/world scheme.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	  If you don't know what Access Control Lists are, say N
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciconfig BTRFS_FS_CHECK_INTEGRITY
538c2ecf20Sopenharmony_ci	bool "Btrfs with integrity check tool compiled in (DANGEROUS)"
548c2ecf20Sopenharmony_ci	depends on BTRFS_FS
558c2ecf20Sopenharmony_ci	help
568c2ecf20Sopenharmony_ci	  Adds code that examines all block write requests (including
578c2ecf20Sopenharmony_ci	  writes of the super block). The goal is to verify that the
588c2ecf20Sopenharmony_ci	  state of the filesystem on disk is always consistent, i.e.,
598c2ecf20Sopenharmony_ci	  after a power-loss or kernel panic event the filesystem is
608c2ecf20Sopenharmony_ci	  in a consistent state.
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci	  If the integrity check tool is included and activated in
638c2ecf20Sopenharmony_ci	  the mount options, plenty of kernel memory is used, and
648c2ecf20Sopenharmony_ci	  plenty of additional CPU cycles are spent. Enabling this
658c2ecf20Sopenharmony_ci	  functionality is not intended for normal use.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	  In most cases, unless you are a btrfs developer who needs
688c2ecf20Sopenharmony_ci	  to verify the integrity of (super)-block write requests
698c2ecf20Sopenharmony_ci	  during the run of a regression test, say N
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciconfig BTRFS_FS_RUN_SANITY_TESTS
728c2ecf20Sopenharmony_ci	bool "Btrfs will run sanity tests upon loading"
738c2ecf20Sopenharmony_ci	depends on BTRFS_FS
748c2ecf20Sopenharmony_ci	help
758c2ecf20Sopenharmony_ci	  This will run some basic sanity tests on the free space cache
768c2ecf20Sopenharmony_ci	  code to make sure it is acting as it should.  These are mostly
778c2ecf20Sopenharmony_ci	  regression tests and are only really interesting to btrfs
788c2ecf20Sopenharmony_ci	  developers.
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci	  If unsure, say N.
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciconfig BTRFS_DEBUG
838c2ecf20Sopenharmony_ci	bool "Btrfs debugging support"
848c2ecf20Sopenharmony_ci	depends on BTRFS_FS
858c2ecf20Sopenharmony_ci	help
868c2ecf20Sopenharmony_ci	  Enable run-time debugging support for the btrfs filesystem. This may
878c2ecf20Sopenharmony_ci	  enable additional and expensive checks with negative impact on
888c2ecf20Sopenharmony_ci	  performance, or export extra information via sysfs.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci	  If unsure, say N.
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ciconfig BTRFS_ASSERT
938c2ecf20Sopenharmony_ci	bool "Btrfs assert support"
948c2ecf20Sopenharmony_ci	depends on BTRFS_FS
958c2ecf20Sopenharmony_ci	help
968c2ecf20Sopenharmony_ci	  Enable run-time assertion checking.  This will result in panics if
978c2ecf20Sopenharmony_ci	  any of the assertions trip.  This is meant for btrfs developers only.
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci	  If unsure, say N.
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ciconfig BTRFS_FS_REF_VERIFY
1028c2ecf20Sopenharmony_ci	bool "Btrfs with the ref verify tool compiled in"
1038c2ecf20Sopenharmony_ci	depends on BTRFS_FS
1048c2ecf20Sopenharmony_ci	default n
1058c2ecf20Sopenharmony_ci	help
1068c2ecf20Sopenharmony_ci	  Enable run-time extent reference verification instrumentation.  This
1078c2ecf20Sopenharmony_ci	  is meant to be used by btrfs developers for tracking down extent
1088c2ecf20Sopenharmony_ci	  reference problems or verifying they didn't break something.
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci	  If unsure, say N.
111