xref: /openbmc/linux/fs/btrfs/Kconfig (revision d5178578)
1852eb3aeSDavid Sterba# SPDX-License-Identifier: GPL-2.0
2852eb3aeSDavid Sterba
3335debeeSAlexey Dobriyanconfig BTRFS_FS
4aa825914SDavid Sterba	tristate "Btrfs filesystem support"
5d5178578SJohannes Thumshirn	select CRYPTO
6d5178578SJohannes Thumshirn	select CRYPTO_CRC32C
7335debeeSAlexey Dobriyan	select ZLIB_INFLATE
8335debeeSAlexey Dobriyan	select ZLIB_DEFLATE
9a6fa6faeSLi Zefan	select LZO_COMPRESS
10a6fa6faeSLi Zefan	select LZO_DECOMPRESS
115c1aab1dSNick Terrell	select ZSTD_COMPRESS
125c1aab1dSNick Terrell	select ZSTD_DECOMPRESS
1353b381b3SDavid Woodhouse	select RAID6_PQ
1410e78e3aSTomasz Torcz	select XOR_BLOCKS
1583fe27eaSPranith Kumar	select SRCU
1653b381b3SDavid Woodhouse
17335debeeSAlexey Dobriyan	help
184204617dSDavid Sterba	  Btrfs is a general purpose copy-on-write filesystem with extents,
194204617dSDavid Sterba	  writable snapshotting, support for multiple devices and many more
204204617dSDavid Sterba	  features focused on fault tolerance, repair and easy administration.
21335debeeSAlexey Dobriyan
224204617dSDavid Sterba	  The filesystem disk format is no longer unstable, and it's not
234204617dSDavid Sterba	  expected to change unless there are strong reasons to do so. If there
244204617dSDavid Sterba	  is a format change, file systems with a unchanged format will
254204617dSDavid Sterba	  continue to be mountable and usable by newer kernels.
264204617dSDavid Sterba
274204617dSDavid Sterba	  For more information, please see the web pages at
284204617dSDavid Sterba	  http://btrfs.wiki.kernel.org.
29335debeeSAlexey Dobriyan
30335debeeSAlexey Dobriyan	  To compile this file system support as a module, choose M here. The
31335debeeSAlexey Dobriyan	  module will be called btrfs.
32335debeeSAlexey Dobriyan
33335debeeSAlexey Dobriyan	  If unsure, say N.
34bef62ef3SChristian Hesse
35bef62ef3SChristian Hesseconfig BTRFS_FS_POSIX_ACL
36bef62ef3SChristian Hesse	bool "Btrfs POSIX Access Control Lists"
37bef62ef3SChristian Hesse	depends on BTRFS_FS
38bef62ef3SChristian Hesse	select FS_POSIX_ACL
39bef62ef3SChristian Hesse	help
40bef62ef3SChristian Hesse	  POSIX Access Control Lists (ACLs) support permissions for users and
41bef62ef3SChristian Hesse	  groups beyond the owner/group/world scheme.
42bef62ef3SChristian Hesse
43bef62ef3SChristian Hesse	  If you don't know what Access Control Lists are, say N
44c975dd46SStefan Behrens
45c975dd46SStefan Behrensconfig BTRFS_FS_CHECK_INTEGRITY
46c975dd46SStefan Behrens	bool "Btrfs with integrity check tool compiled in (DANGEROUS)"
47c975dd46SStefan Behrens	depends on BTRFS_FS
48c975dd46SStefan Behrens	help
49c975dd46SStefan Behrens	  Adds code that examines all block write requests (including
50c975dd46SStefan Behrens	  writes of the super block). The goal is to verify that the
51c975dd46SStefan Behrens	  state of the filesystem on disk is always consistent, i.e.,
52c975dd46SStefan Behrens	  after a power-loss or kernel panic event the filesystem is
53c975dd46SStefan Behrens	  in a consistent state.
54c975dd46SStefan Behrens
55c975dd46SStefan Behrens	  If the integrity check tool is included and activated in
56c975dd46SStefan Behrens	  the mount options, plenty of kernel memory is used, and
57c975dd46SStefan Behrens	  plenty of additional CPU cycles are spent. Enabling this
58c975dd46SStefan Behrens	  functionality is not intended for normal use.
59c975dd46SStefan Behrens
60c975dd46SStefan Behrens	  In most cases, unless you are a btrfs developer who needs
61c975dd46SStefan Behrens	  to verify the integrity of (super)-block write requests
62c975dd46SStefan Behrens	  during the run of a regression test, say N
6374255aa0SJosef Bacik
6474255aa0SJosef Bacikconfig BTRFS_FS_RUN_SANITY_TESTS
6574255aa0SJosef Bacik	bool "Btrfs will run sanity tests upon loading"
6674255aa0SJosef Bacik	depends on BTRFS_FS
6774255aa0SJosef Bacik	help
6874255aa0SJosef Bacik	  This will run some basic sanity tests on the free space cache
6974255aa0SJosef Bacik	  code to make sure it is acting as it should.  These are mostly
70a26a8746SMichael Witten	  regression tests and are only really interesting to btrfs
71a26a8746SMichael Witten	  developers.
7274255aa0SJosef Bacik
7374255aa0SJosef Bacik	  If unsure, say N.
7474255aa0SJosef Bacik
756d49ba1bSEric Sandeenconfig BTRFS_DEBUG
766d49ba1bSEric Sandeen	bool "Btrfs debugging support"
776d49ba1bSEric Sandeen	depends on BTRFS_FS
786d49ba1bSEric Sandeen	help
796d49ba1bSEric Sandeen	  Enable run-time debugging support for the btrfs filesystem. This may
806d49ba1bSEric Sandeen	  enable additional and expensive checks with negative impact on
816d49ba1bSEric Sandeen	  performance, or export extra information via sysfs.
826d49ba1bSEric Sandeen
836d49ba1bSEric Sandeen	  If unsure, say N.
842e17c7c6SJosef Bacik
852e17c7c6SJosef Bacikconfig BTRFS_ASSERT
862e17c7c6SJosef Bacik	bool "Btrfs assert support"
872e17c7c6SJosef Bacik	depends on BTRFS_FS
882e17c7c6SJosef Bacik	help
892e17c7c6SJosef Bacik	  Enable run-time assertion checking.  This will result in panics if
902e17c7c6SJosef Bacik	  any of the assertions trip.  This is meant for btrfs developers only.
912e17c7c6SJosef Bacik
922e17c7c6SJosef Bacik	  If unsure, say N.
93fd708b81SJosef Bacik
94fd708b81SJosef Bacikconfig BTRFS_FS_REF_VERIFY
95fd708b81SJosef Bacik	bool "Btrfs with the ref verify tool compiled in"
96fd708b81SJosef Bacik	depends on BTRFS_FS
97fd708b81SJosef Bacik	default n
98fd708b81SJosef Bacik	help
99fd708b81SJosef Bacik	  Enable run-time extent reference verification instrumentation.  This
100fd708b81SJosef Bacik	  is meant to be used by btrfs developers for tracking down extent
101fd708b81SJosef Bacik	  reference problems or verifying they didn't break something.
102fd708b81SJosef Bacik
103fd708b81SJosef Bacik	  If unsure, say N.
104