0001 # SPDX-License-Identifier: GPL-2.0
0002
0003 config BTRFS_FS
0004 tristate "Btrfs filesystem support"
0005 select CRYPTO
0006 select CRYPTO_CRC32C
0007 select LIBCRC32C
0008 select CRYPTO_XXHASH
0009 select CRYPTO_SHA256
0010 select CRYPTO_BLAKE2B
0011 select ZLIB_INFLATE
0012 select ZLIB_DEFLATE
0013 select LZO_COMPRESS
0014 select LZO_DECOMPRESS
0015 select ZSTD_COMPRESS
0016 select ZSTD_DECOMPRESS
0017 select FS_IOMAP
0018 select RAID6_PQ
0019 select XOR_BLOCKS
0020 select SRCU
0021 depends on PAGE_SIZE_LESS_THAN_256KB
0022
0023 help
0024 Btrfs is a general purpose copy-on-write filesystem with extents,
0025 writable snapshotting, support for multiple devices and many more
0026 features focused on fault tolerance, repair and easy administration.
0027
0028 The filesystem disk format is no longer unstable, and it's not
0029 expected to change unless there are strong reasons to do so. If there
0030 is a format change, file systems with a unchanged format will
0031 continue to be mountable and usable by newer kernels.
0032
0033 For more information, please see the web pages at
0034 http://btrfs.wiki.kernel.org.
0035
0036 To compile this file system support as a module, choose M here. The
0037 module will be called btrfs.
0038
0039 If unsure, say N.
0040
0041 config BTRFS_FS_POSIX_ACL
0042 bool "Btrfs POSIX Access Control Lists"
0043 depends on BTRFS_FS
0044 select FS_POSIX_ACL
0045 help
0046 POSIX Access Control Lists (ACLs) support permissions for users and
0047 groups beyond the owner/group/world scheme.
0048
0049 If you don't know what Access Control Lists are, say N
0050
0051 config BTRFS_FS_CHECK_INTEGRITY
0052 bool "Btrfs with integrity check tool compiled in (DANGEROUS)"
0053 depends on BTRFS_FS
0054 help
0055 Adds code that examines all block write requests (including
0056 writes of the super block). The goal is to verify that the
0057 state of the filesystem on disk is always consistent, i.e.,
0058 after a power-loss or kernel panic event the filesystem is
0059 in a consistent state.
0060
0061 If the integrity check tool is included and activated in
0062 the mount options, plenty of kernel memory is used, and
0063 plenty of additional CPU cycles are spent. Enabling this
0064 functionality is not intended for normal use.
0065
0066 In most cases, unless you are a btrfs developer who needs
0067 to verify the integrity of (super)-block write requests
0068 during the run of a regression test, say N
0069
0070 config BTRFS_FS_RUN_SANITY_TESTS
0071 bool "Btrfs will run sanity tests upon loading"
0072 depends on BTRFS_FS
0073 help
0074 This will run some basic sanity tests on the free space cache
0075 code to make sure it is acting as it should. These are mostly
0076 regression tests and are only really interesting to btrfs
0077 developers.
0078
0079 If unsure, say N.
0080
0081 config BTRFS_DEBUG
0082 bool "Btrfs debugging support"
0083 depends on BTRFS_FS
0084 help
0085 Enable run-time debugging support for the btrfs filesystem. This may
0086 enable additional and expensive checks with negative impact on
0087 performance, or export extra information via sysfs.
0088
0089 If unsure, say N.
0090
0091 config BTRFS_ASSERT
0092 bool "Btrfs assert support"
0093 depends on BTRFS_FS
0094 help
0095 Enable run-time assertion checking. This will result in panics if
0096 any of the assertions trip. This is meant for btrfs developers only.
0097
0098 If unsure, say N.
0099
0100 config BTRFS_FS_REF_VERIFY
0101 bool "Btrfs with the ref verify tool compiled in"
0102 depends on BTRFS_FS
0103 default n
0104 help
0105 Enable run-time extent reference verification instrumentation. This
0106 is meant to be used by btrfs developers for tracking down extent
0107 reference problems or verifying they didn't break something.
0108
0109 If unsure, say N.