1852eb3aeSDavid Sterba# SPDX-License-Identifier: GPL-2.0 2852eb3aeSDavid Sterba 3335debeeSAlexey Dobriyanconfig BTRFS_FS 4aa825914SDavid Sterba tristate "Btrfs filesystem support" 52c275afeSChristoph Hellwig select BLK_CGROUP_PUNT_BIO 6b261d222SEric Biggers select CRC32 7d5178578SJohannes Thumshirn select CRYPTO 8d5178578SJohannes Thumshirn select CRYPTO_CRC32C 93951e7f0SJohannes Thumshirn select CRYPTO_XXHASH 103831bf00SJohannes Thumshirn select CRYPTO_SHA256 1178f926f7SDavid Sterba select CRYPTO_BLAKE2B 12335debeeSAlexey Dobriyan select ZLIB_INFLATE 13335debeeSAlexey Dobriyan select ZLIB_DEFLATE 14a6fa6faeSLi Zefan select LZO_COMPRESS 15a6fa6faeSLi Zefan select LZO_DECOMPRESS 165c1aab1dSNick Terrell select ZSTD_COMPRESS 175c1aab1dSNick Terrell select ZSTD_DECOMPRESS 18f85781fbSGoldwyn Rodrigues select FS_IOMAP 1953b381b3SDavid Woodhouse select RAID6_PQ 2010e78e3aSTomasz Torcz select XOR_BLOCKS 21e9009095SNathan Chancellor depends on PAGE_SIZE_LESS_THAN_256KB 2253b381b3SDavid Woodhouse 23335debeeSAlexey Dobriyan help 244204617dSDavid Sterba Btrfs is a general purpose copy-on-write filesystem with extents, 254204617dSDavid Sterba writable snapshotting, support for multiple devices and many more 264204617dSDavid Sterba features focused on fault tolerance, repair and easy administration. 27335debeeSAlexey Dobriyan 284204617dSDavid Sterba The filesystem disk format is no longer unstable, and it's not 294204617dSDavid Sterba expected to change unless there are strong reasons to do so. If there 304204617dSDavid Sterba is a format change, file systems with a unchanged format will 314204617dSDavid Sterba continue to be mountable and usable by newer kernels. 324204617dSDavid Sterba 334204617dSDavid Sterba For more information, please see the web pages at 345facccc9SBhaskar Chowdhury https://btrfs.readthedocs.io 35335debeeSAlexey Dobriyan 36335debeeSAlexey Dobriyan To compile this file system support as a module, choose M here. The 37335debeeSAlexey Dobriyan module will be called btrfs. 38335debeeSAlexey Dobriyan 39335debeeSAlexey Dobriyan If unsure, say N. 40bef62ef3SChristian Hesse 41bef62ef3SChristian Hesseconfig BTRFS_FS_POSIX_ACL 42bef62ef3SChristian Hesse bool "Btrfs POSIX Access Control Lists" 43bef62ef3SChristian Hesse depends on BTRFS_FS 44bef62ef3SChristian Hesse select FS_POSIX_ACL 45bef62ef3SChristian Hesse help 46bef62ef3SChristian Hesse POSIX Access Control Lists (ACLs) support permissions for users and 47bef62ef3SChristian Hesse groups beyond the owner/group/world scheme. 48bef62ef3SChristian Hesse 49bef62ef3SChristian Hesse If you don't know what Access Control Lists are, say N 50c975dd46SStefan Behrens 5174255aa0SJosef Bacikconfig BTRFS_FS_RUN_SANITY_TESTS 5274255aa0SJosef Bacik bool "Btrfs will run sanity tests upon loading" 5374255aa0SJosef Bacik depends on BTRFS_FS 5474255aa0SJosef Bacik help 55c16b984cSDavid Sterba This will run sanity tests for core functionality like free space, 56c16b984cSDavid Sterba extent maps, extent io, extent buffers, inodes, qgroups and others, 57c16b984cSDavid Sterba at module load time. These are mostly regression tests and are only 58c16b984cSDavid Sterba interesting to developers. 5974255aa0SJosef Bacik 6074255aa0SJosef Bacik If unsure, say N. 6174255aa0SJosef Bacik 626d49ba1bSEric Sandeenconfig BTRFS_DEBUG 636d49ba1bSEric Sandeen bool "Btrfs debugging support" 646d49ba1bSEric Sandeen depends on BTRFS_FS 656d49ba1bSEric Sandeen help 66c16b984cSDavid Sterba Enable run-time debugging support for the btrfs filesystem. 67c16b984cSDavid Sterba 68c16b984cSDavid Sterba Additional potentially expensive checks, debugging functionality or 69c16b984cSDavid Sterba sysfs exported information is enabled, like leak checks of internal 70c16b984cSDavid Sterba objects, optional forced space fragmentation and /sys/fs/btrfs/debug . 71c16b984cSDavid Sterba This has negative impact on performance. 726d49ba1bSEric Sandeen 736d49ba1bSEric Sandeen If unsure, say N. 742e17c7c6SJosef Bacik 752e17c7c6SJosef Bacikconfig BTRFS_ASSERT 762e17c7c6SJosef Bacik bool "Btrfs assert support" 772e17c7c6SJosef Bacik depends on BTRFS_FS 782e17c7c6SJosef Bacik help 79c16b984cSDavid Sterba Enable run-time assertion checking. Additional safety checks are 80c16b984cSDavid Sterba done, simple enough not to affect performance but verify invariants 81c16b984cSDavid Sterba and assumptions of code to run properly. This may result in panics, 82c16b984cSDavid Sterba and is meant for developers but can be enabled in general. 832e17c7c6SJosef Bacik 842e17c7c6SJosef Bacik If unsure, say N. 85fd708b81SJosef Bacik 8667cd3f22SQu Wenruoconfig BTRFS_EXPERIMENTAL 8767cd3f22SQu Wenruo bool "Btrfs experimental features" 8867cd3f22SQu Wenruo depends on BTRFS_FS 8967cd3f22SQu Wenruo default n 9067cd3f22SQu Wenruo help 9167cd3f22SQu Wenruo Enable experimental features. These features may not be stable enough 9267cd3f22SQu Wenruo for end users. This is meant for btrfs developers or users who wish 9367cd3f22SQu Wenruo to test the functionality and report problems. 9467cd3f22SQu Wenruo 9567cd3f22SQu Wenruo Current list: 9667cd3f22SQu Wenruo 975f9b394eSDavid Sterba - COW fixup worker warning - last warning before removing the 985f9b394eSDavid Sterba functionality catching out-of-band page 995f9b394eSDavid Sterba dirtying, not necessary since 5.8 1005f9b394eSDavid Sterba 1015f9b394eSDavid Sterba - RAID mirror read policy - additional read policies for balancing 1025f9b394eSDavid Sterba reading from redundant block group 1035f9b394eSDavid Sterba profiles (currently: pid, round-robin, 1045f9b394eSDavid Sterba fixed devid) 10567cd3f22SQu Wenruo 10667cd3f22SQu Wenruo - send stream protocol v3 - fs-verity support 10767cd3f22SQu Wenruo 10867cd3f22SQu Wenruo - checksum offload mode - sysfs knob to affect when checksums are 10967cd3f22SQu Wenruo calculated (at IO time, or in a thread) 11067cd3f22SQu Wenruo 11167cd3f22SQu Wenruo - raid-stripe-tree - additional mapping of extents to devices to 11267cd3f22SQu Wenruo support RAID1* profiles on zoned devices, 11367cd3f22SQu Wenruo RAID56 not yet supported 11467cd3f22SQu Wenruo 11567cd3f22SQu Wenruo - extent tree v2 - complex rework of extent tracking 11667cd3f22SQu Wenruo 117*cc38d178SQu Wenruo - large folio support 118*cc38d178SQu Wenruo 11967cd3f22SQu Wenruo If unsure, say N. 12067cd3f22SQu Wenruo 121fd708b81SJosef Bacikconfig BTRFS_FS_REF_VERIFY 122fd708b81SJosef Bacik bool "Btrfs with the ref verify tool compiled in" 123fd708b81SJosef Bacik depends on BTRFS_FS 124fd708b81SJosef Bacik default n 125fd708b81SJosef Bacik help 126fd708b81SJosef Bacik Enable run-time extent reference verification instrumentation. This 127fd708b81SJosef Bacik is meant to be used by btrfs developers for tracking down extent 128fd708b81SJosef Bacik reference problems or verifying they didn't break something. 129fd708b81SJosef Bacik 130fd708b81SJosef Bacik If unsure, say N. 131