# SPDX-License-Identifier: GPL-2.0 
 | 
  
 | 
config BTRFS_FS 
 | 
    tristate "Btrfs filesystem support" 
 | 
    select CRYPTO 
 | 
    select CRYPTO_CRC32C 
 | 
    select LIBCRC32C 
 | 
    select CRYPTO_XXHASH 
 | 
    select CRYPTO_SHA256 
 | 
    select CRYPTO_BLAKE2B 
 | 
    select ZLIB_INFLATE 
 | 
    select ZLIB_DEFLATE 
 | 
    select LZO_COMPRESS 
 | 
    select LZO_DECOMPRESS 
 | 
    select ZSTD_COMPRESS 
 | 
    select ZSTD_DECOMPRESS 
 | 
    select FS_IOMAP 
 | 
    select RAID6_PQ 
 | 
    select XOR_BLOCKS 
 | 
    select SRCU 
 | 
    depends on !PPC_256K_PAGES    # powerpc 
 | 
    depends on !PAGE_SIZE_256KB    # hexagon 
 | 
  
 | 
    help 
 | 
      Btrfs is a general purpose copy-on-write filesystem with extents, 
 | 
      writable snapshotting, support for multiple devices and many more 
 | 
      features focused on fault tolerance, repair and easy administration. 
 | 
  
 | 
      The filesystem disk format is no longer unstable, and it's not 
 | 
      expected to change unless there are strong reasons to do so. If there 
 | 
      is a format change, file systems with a unchanged format will 
 | 
      continue to be mountable and usable by newer kernels. 
 | 
  
 | 
      For more information, please see the web pages at 
 | 
      http://btrfs.wiki.kernel.org. 
 | 
  
 | 
      To compile this file system support as a module, choose M here. The 
 | 
      module will be called btrfs. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
config BTRFS_FS_POSIX_ACL 
 | 
    bool "Btrfs POSIX Access Control Lists" 
 | 
    depends on BTRFS_FS 
 | 
    select FS_POSIX_ACL 
 | 
    help 
 | 
      POSIX Access Control Lists (ACLs) support permissions for users and 
 | 
      groups beyond the owner/group/world scheme. 
 | 
  
 | 
      If you don't know what Access Control Lists are, say N 
 | 
  
 | 
config BTRFS_FS_CHECK_INTEGRITY 
 | 
    bool "Btrfs with integrity check tool compiled in (DANGEROUS)" 
 | 
    depends on BTRFS_FS 
 | 
    help 
 | 
      Adds code that examines all block write requests (including 
 | 
      writes of the super block). The goal is to verify that the 
 | 
      state of the filesystem on disk is always consistent, i.e., 
 | 
      after a power-loss or kernel panic event the filesystem is 
 | 
      in a consistent state. 
 | 
  
 | 
      If the integrity check tool is included and activated in 
 | 
      the mount options, plenty of kernel memory is used, and 
 | 
      plenty of additional CPU cycles are spent. Enabling this 
 | 
      functionality is not intended for normal use. 
 | 
  
 | 
      In most cases, unless you are a btrfs developer who needs 
 | 
      to verify the integrity of (super)-block write requests 
 | 
      during the run of a regression test, say N 
 | 
  
 | 
config BTRFS_FS_RUN_SANITY_TESTS 
 | 
    bool "Btrfs will run sanity tests upon loading" 
 | 
    depends on BTRFS_FS 
 | 
    help 
 | 
      This will run some basic sanity tests on the free space cache 
 | 
      code to make sure it is acting as it should.  These are mostly 
 | 
      regression tests and are only really interesting to btrfs 
 | 
      developers. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
config BTRFS_DEBUG 
 | 
    bool "Btrfs debugging support" 
 | 
    depends on BTRFS_FS 
 | 
    help 
 | 
      Enable run-time debugging support for the btrfs filesystem. This may 
 | 
      enable additional and expensive checks with negative impact on 
 | 
      performance, or export extra information via sysfs. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
config BTRFS_ASSERT 
 | 
    bool "Btrfs assert support" 
 | 
    depends on BTRFS_FS 
 | 
    help 
 | 
      Enable run-time assertion checking.  This will result in panics if 
 | 
      any of the assertions trip.  This is meant for btrfs developers only. 
 | 
  
 | 
      If unsure, say N. 
 | 
  
 | 
config BTRFS_FS_REF_VERIFY 
 | 
    bool "Btrfs with the ref verify tool compiled in" 
 | 
    depends on BTRFS_FS 
 | 
    default n 
 | 
    help 
 | 
      Enable run-time extent reference verification instrumentation.  This 
 | 
      is meant to be used by btrfs developers for tracking down extent 
 | 
      reference problems or verifying they didn't break something. 
 | 
  
 | 
      If unsure, say N. 
 |