1# SPDX-License-Identifier: GPL-2.0 2 3config BTRFS_FS 4 tristate "Btrfs filesystem support" 5 select BLK_CGROUP_PUNT_BIO 6 select CRC32 7 select CRYPTO_LIB_BLAKE2B 8 select CRYPTO_LIB_SHA256 9 select ZLIB_INFLATE 10 select ZLIB_DEFLATE 11 select LZO_COMPRESS 12 select LZO_DECOMPRESS 13 select ZSTD_COMPRESS 14 select ZSTD_DECOMPRESS 15 select FS_IOMAP 16 select RAID6_PQ 17 select XOR_BLOCKS 18 select XXHASH 19 depends on PAGE_SIZE_LESS_THAN_256KB 20 21 help 22 Btrfs is a general purpose copy-on-write filesystem with extents, 23 writable snapshotting, support for multiple devices and many more 24 features focused on fault tolerance, repair and easy administration. 25 26 The filesystem disk format is no longer unstable, and it's not 27 expected to change unless there are strong reasons to do so. If there 28 is a format change, file systems with a unchanged format will 29 continue to be mountable and usable by newer kernels. 30 31 For more information, please see the web pages at 32 https://btrfs.readthedocs.io 33 34 To compile this file system support as a module, choose M here. The 35 module will be called btrfs. 36 37 If unsure, say N. 38 39config BTRFS_FS_POSIX_ACL 40 bool "Btrfs POSIX Access Control Lists" 41 depends on BTRFS_FS 42 select FS_POSIX_ACL 43 help 44 POSIX Access Control Lists (ACLs) support permissions for users and 45 groups beyond the owner/group/world scheme. 46 47 If you don't know what Access Control Lists are, say N 48 49config BTRFS_FS_RUN_SANITY_TESTS 50 bool "Btrfs will run sanity tests upon loading" 51 depends on BTRFS_FS 52 help 53 This will run sanity tests for core functionality like free space, 54 extent maps, extent io, extent buffers, inodes, qgroups and others, 55 at module load time. These are mostly regression tests and are only 56 interesting to developers. 57 58 If unsure, say N. 59 60config BTRFS_DEBUG 61 bool "Btrfs debugging support" 62 depends on BTRFS_FS 63 select REF_TRACKER if STACKTRACE_SUPPORT 64 help 65 Enable run-time debugging support for the btrfs filesystem. 66 67 Additional potentially expensive checks, debugging functionality or 68 sysfs exported information is enabled, like leak checks of internal 69 objects, optional forced space fragmentation and /sys/fs/btrfs/debug . 70 This has negative impact on performance. 71 72 If unsure, say N. 73 74config BTRFS_ASSERT 75 bool "Btrfs assert support" 76 depends on BTRFS_FS 77 help 78 Enable run-time assertion checking. Additional safety checks are 79 done, simple enough not to affect performance but verify invariants 80 and assumptions of code to run properly. This may result in panics, 81 and is meant for developers but can be enabled in general. 82 83 If unsure, say N. 84 85config BTRFS_EXPERIMENTAL 86 bool "Btrfs experimental features" 87 depends on BTRFS_FS 88 default n 89 help 90 Enable experimental features. These features may not be stable enough 91 for end users. This is meant for btrfs developers or users who wish 92 to test the functionality and report problems. 93 94 Current list: 95 96 - COW fixup worker warning - last warning before removing the 97 functionality catching out-of-band page 98 dirtying, not necessary since 5.8 99 100 - RAID mirror read policy - additional read policies for balancing 101 reading from redundant block group 102 profiles (currently: pid, round-robin, 103 fixed devid) 104 105 - send stream protocol v3 - fs-verity support 106 107 - raid-stripe-tree - additional mapping of extents to devices to 108 support RAID1* profiles on zoned devices, 109 RAID56 not yet supported 110 111 - extent tree v2 - complex rework of extent tracking 112 113 - large folio and block size (> page size) support 114 115 - shutdown ioctl and auto-degradation support 116 117 - asynchronous checksum generation for data writes 118 119 - remap-tree - logical address remapping tree 120 121 If unsure, say N. 122