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