| # SPDX-License-Identifier: GPL-2.0 | |
| config BTRFS_FS | |
| tristate "Btrfs filesystem support" | |
| select BLK_CGROUP_PUNT_BIO | |
| select CRC32 | |
| select CRYPTO_LIB_BLAKE2B | |
| select CRYPTO_LIB_SHA256 | |
| select ZLIB_INFLATE | |
| select ZLIB_DEFLATE | |
| select LZO_COMPRESS | |
| select LZO_DECOMPRESS | |
| select ZSTD_COMPRESS | |
| select ZSTD_DECOMPRESS | |
| select FS_IOMAP | |
| select RAID6_PQ | |
| select XOR_BLOCKS | |
| select XXHASH | |
| depends on PAGE_SIZE_LESS_THAN_256KB | |
| help | |
| Btrfs is a general purpose copy-on-write filesystem with extents, | |
| writable snapshotting, support for multiple devices and many more | |
| features focused on fault tolerance, repair and easy administration. | |
| The filesystem disk format is no longer unstable, and it's not | |
| expected to change unless there are strong reasons to do so. If there | |
| is a format change, file systems with a unchanged format will | |
| continue to be mountable and usable by newer kernels. | |
| For more information, please see the web pages at | |
| https://btrfs.readthedocs.io | |
| To compile this file system support as a module, choose M here. The | |
| module will be called btrfs. | |
| If unsure, say N. | |
| config BTRFS_FS_POSIX_ACL | |
| bool "Btrfs POSIX Access Control Lists" | |
| depends on BTRFS_FS | |
| select FS_POSIX_ACL | |
| help | |
| POSIX Access Control Lists (ACLs) support permissions for users and | |
| groups beyond the owner/group/world scheme. | |
| If you don't know what Access Control Lists are, say N | |
| config BTRFS_FS_RUN_SANITY_TESTS | |
| bool "Btrfs will run sanity tests upon loading" | |
| depends on BTRFS_FS | |
| help | |
| This will run sanity tests for core functionality like free space, | |
| extent maps, extent io, extent buffers, inodes, qgroups and others, | |
| at module load time. These are mostly regression tests and are only | |
| interesting to developers. | |
| If unsure, say N. | |
| config BTRFS_DEBUG | |
| bool "Btrfs debugging support" | |
| depends on BTRFS_FS | |
| select REF_TRACKER if STACKTRACE_SUPPORT | |
| help | |
| Enable run-time debugging support for the btrfs filesystem. | |
| Additional potentially expensive checks, debugging functionality or | |
| sysfs exported information is enabled, like leak checks of internal | |
| objects, optional forced space fragmentation and /sys/fs/btrfs/debug . | |
| This has negative impact on performance. | |
| If unsure, say N. | |
| config BTRFS_ASSERT | |
| bool "Btrfs assert support" | |
| depends on BTRFS_FS | |
| help | |
| Enable run-time assertion checking. Additional safety checks are | |
| done, simple enough not to affect performance but verify invariants | |
| and assumptions of code to run properly. This may result in panics, | |
| and is meant for developers but can be enabled in general. | |
| If unsure, say N. | |
| config BTRFS_EXPERIMENTAL | |
| bool "Btrfs experimental features" | |
| depends on BTRFS_FS | |
| default n | |
| help | |
| Enable experimental features. These features may not be stable enough | |
| for end users. This is meant for btrfs developers or users who wish | |
| to test the functionality and report problems. | |
| Current list: | |
| - RAID mirror read policy - additional read policies for balancing | |
| reading from redundant block group | |
| profiles (currently: pid, round-robin, | |
| fixed devid) | |
| - send stream protocol v3 - fs-verity support | |
| - raid-stripe-tree - additional mapping of extents to devices to | |
| support RAID1* profiles on zoned devices, | |
| RAID56 not yet supported | |
| - extent tree v2 - complex rework of extent tracking | |
| - block size > page size support - needs transparent huge page and | |
| non-HIGHMEM system | |
| - huge folios for data - folios can be as large as 2MiB now | |
| - asynchronous checksum generation for data writes | |
| - remap-tree - logical address remapping tree | |
| If unsure, say N. |