| 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | |
| 3 | config BTRFS_FS |
| 4 | tristate "Btrfs filesystem support" |
| 5 | select BLK_CGROUP_PUNT_BIO |
| 6 | select CRYPTO |
| 7 | select CRYPTO_CRC32C |
| 8 | select LIBCRC32C |
| 9 | select CRYPTO_XXHASH |
| 10 | select CRYPTO_SHA256 |
| 11 | select CRYPTO_BLAKE2B |
| 12 | select ZLIB_INFLATE |
| 13 | select ZLIB_DEFLATE |
| 14 | select LZO_COMPRESS |
| 15 | select LZO_DECOMPRESS |
| 16 | select ZSTD_COMPRESS |
| 17 | select ZSTD_DECOMPRESS |
| 18 | select FS_IOMAP |
| 19 | select RAID6_PQ |
| 20 | select XOR_BLOCKS |
| 21 | depends on PAGE_SIZE_LESS_THAN_256KB |
| 22 | |
| 23 | help |
| 24 | Btrfs is a general purpose copy-on-write filesystem with extents, |
| 25 | writable snapshotting, support for multiple devices and many more |
| 26 | features focused on fault tolerance, repair and easy administration. |
| 27 | |
| 28 | The filesystem disk format is no longer unstable, and it's not |
| 29 | expected to change unless there are strong reasons to do so. If there |
| 30 | is a format change, file systems with a unchanged format will |
| 31 | continue to be mountable and usable by newer kernels. |
| 32 | |
| 33 | For more information, please see the web pages at |
| 34 | http://btrfs.wiki.kernel.org. |
| 35 | |
| 36 | To compile this file system support as a module, choose M here. The |
| 37 | module will be called btrfs. |
| 38 | |
| 39 | If unsure, say N. |
| 40 | |
| 41 | config BTRFS_FS_POSIX_ACL |
| 42 | bool "Btrfs POSIX Access Control Lists" |
| 43 | depends on BTRFS_FS |
| 44 | select FS_POSIX_ACL |
| 45 | help |
| 46 | POSIX Access Control Lists (ACLs) support permissions for users and |
| 47 | groups beyond the owner/group/world scheme. |
| 48 | |
| 49 | If you don't know what Access Control Lists are, say N |
| 50 | |
| 51 | config BTRFS_FS_CHECK_INTEGRITY |
| 52 | bool "Btrfs with integrity check tool compiled in (DEPRECATED)" |
| 53 | depends on BTRFS_FS |
| 54 | help |
| 55 | This feature has been deprecated and will be removed in 6.7. |
| 56 | |
| 57 | Adds code that examines all block write requests (including |
| 58 | writes of the super block). The goal is to verify that the |
| 59 | state of the filesystem on disk is always consistent, i.e., |
| 60 | after a power-loss or kernel panic event the filesystem is |
| 61 | in a consistent state. |
| 62 | |
| 63 | If the integrity check tool is included and activated in |
| 64 | the mount options, plenty of kernel memory is used, and |
| 65 | plenty of additional CPU cycles are spent. Enabling this |
| 66 | functionality is not intended for normal use. |
| 67 | |
| 68 | In most cases, unless you are a btrfs developer who needs |
| 69 | to verify the integrity of (super)-block write requests |
| 70 | during the run of a regression test, say N |
| 71 | |
| 72 | config BTRFS_FS_RUN_SANITY_TESTS |
| 73 | bool "Btrfs will run sanity tests upon loading" |
| 74 | depends on BTRFS_FS |
| 75 | help |
| 76 | This will run some basic sanity tests on the free space cache |
| 77 | code to make sure it is acting as it should. These are mostly |
| 78 | regression tests and are only really interesting to btrfs |
| 79 | developers. |
| 80 | |
| 81 | If unsure, say N. |
| 82 | |
| 83 | config BTRFS_DEBUG |
| 84 | bool "Btrfs debugging support" |
| 85 | depends on BTRFS_FS |
| 86 | help |
| 87 | Enable run-time debugging support for the btrfs filesystem. This may |
| 88 | enable additional and expensive checks with negative impact on |
| 89 | performance, or export extra information via sysfs. |
| 90 | |
| 91 | If unsure, say N. |
| 92 | |
| 93 | config BTRFS_ASSERT |
| 94 | bool "Btrfs assert support" |
| 95 | depends on BTRFS_FS |
| 96 | help |
| 97 | Enable run-time assertion checking. This will result in panics if |
| 98 | any of the assertions trip. This is meant for btrfs developers only. |
| 99 | |
| 100 | If unsure, say N. |
| 101 | |
| 102 | config BTRFS_FS_REF_VERIFY |
| 103 | bool "Btrfs with the ref verify tool compiled in" |
| 104 | depends on BTRFS_FS |
| 105 | default n |
| 106 | help |
| 107 | Enable run-time extent reference verification instrumentation. This |
| 108 | is meant to be used by btrfs developers for tracking down extent |
| 109 | reference problems or verifying they didn't break something. |
| 110 | |
| 111 | If unsure, say N. |