Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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.