btrfs: raid56: use in_range where applicable
[linux-2.6-microblaze.git] / fs / btrfs / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 config BTRFS_FS
4         tristate "Btrfs filesystem support"
5         select CRYPTO
6         select CRYPTO_CRC32C
7         select LIBCRC32C
8         select CRYPTO_XXHASH
9         select CRYPTO_SHA256
10         select CRYPTO_BLAKE2B
11         select ZLIB_INFLATE
12         select ZLIB_DEFLATE
13         select LZO_COMPRESS
14         select LZO_DECOMPRESS
15         select ZSTD_COMPRESS
16         select ZSTD_DECOMPRESS
17         select RAID6_PQ
18         select XOR_BLOCKS
19         select SRCU
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           http://btrfs.wiki.kernel.org.
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
39 config 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
49 config BTRFS_FS_CHECK_INTEGRITY
50         bool "Btrfs with integrity check tool compiled in (DANGEROUS)"
51         depends on BTRFS_FS
52         help
53           Adds code that examines all block write requests (including
54           writes of the super block). The goal is to verify that the
55           state of the filesystem on disk is always consistent, i.e.,
56           after a power-loss or kernel panic event the filesystem is
57           in a consistent state.
58
59           If the integrity check tool is included and activated in
60           the mount options, plenty of kernel memory is used, and
61           plenty of additional CPU cycles are spent. Enabling this
62           functionality is not intended for normal use.
63
64           In most cases, unless you are a btrfs developer who needs
65           to verify the integrity of (super)-block write requests
66           during the run of a regression test, say N
67
68 config BTRFS_FS_RUN_SANITY_TESTS
69         bool "Btrfs will run sanity tests upon loading"
70         depends on BTRFS_FS
71         help
72           This will run some basic sanity tests on the free space cache
73           code to make sure it is acting as it should.  These are mostly
74           regression tests and are only really interesting to btrfs
75           developers.
76
77           If unsure, say N.
78
79 config BTRFS_DEBUG
80         bool "Btrfs debugging support"
81         depends on BTRFS_FS
82         help
83           Enable run-time debugging support for the btrfs filesystem. This may
84           enable additional and expensive checks with negative impact on
85           performance, or export extra information via sysfs.
86
87           If unsure, say N.
88
89 config BTRFS_ASSERT
90         bool "Btrfs assert support"
91         depends on BTRFS_FS
92         help
93           Enable run-time assertion checking.  This will result in panics if
94           any of the assertions trip.  This is meant for btrfs developers only.
95
96           If unsure, say N.
97
98 config BTRFS_FS_REF_VERIFY
99         bool "Btrfs with the ref verify tool compiled in"
100         depends on BTRFS_FS
101         default n
102         help
103           Enable run-time extent reference verification instrumentation.  This
104           is meant to be used by btrfs developers for tracking down extent
105           reference problems or verifying they didn't break something.
106
107           If unsure, say N.