162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci# Ext3 configs are here for backward compatibility with old configs which may
362306a36Sopenharmony_ci# have EXT3_FS set but not EXT4_FS set and thus would result in non-bootable
462306a36Sopenharmony_ci# kernels after the removal of ext3 driver.
562306a36Sopenharmony_ciconfig EXT3_FS
662306a36Sopenharmony_ci	tristate "The Extended 3 (ext3) filesystem"
762306a36Sopenharmony_ci	select EXT4_FS
862306a36Sopenharmony_ci	help
962306a36Sopenharmony_ci	  This config option is here only for backward compatibility. ext3
1062306a36Sopenharmony_ci	  filesystem is now handled by the ext4 driver.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciconfig EXT3_FS_POSIX_ACL
1362306a36Sopenharmony_ci	bool "Ext3 POSIX Access Control Lists"
1462306a36Sopenharmony_ci	depends on EXT3_FS
1562306a36Sopenharmony_ci	select EXT4_FS_POSIX_ACL
1662306a36Sopenharmony_ci	select FS_POSIX_ACL
1762306a36Sopenharmony_ci	help
1862306a36Sopenharmony_ci	  This config option is here only for backward compatibility. ext3
1962306a36Sopenharmony_ci	  filesystem is now handled by the ext4 driver.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciconfig EXT3_FS_SECURITY
2262306a36Sopenharmony_ci	bool "Ext3 Security Labels"
2362306a36Sopenharmony_ci	depends on EXT3_FS
2462306a36Sopenharmony_ci	select EXT4_FS_SECURITY
2562306a36Sopenharmony_ci	help
2662306a36Sopenharmony_ci	  This config option is here only for backward compatibility. ext3
2762306a36Sopenharmony_ci	  filesystem is now handled by the ext4 driver.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig EXT4_FS
3062306a36Sopenharmony_ci	tristate "The Extended 4 (ext4) filesystem"
3162306a36Sopenharmony_ci	select BUFFER_HEAD
3262306a36Sopenharmony_ci	select JBD2
3362306a36Sopenharmony_ci	select CRC16
3462306a36Sopenharmony_ci	select CRYPTO
3562306a36Sopenharmony_ci	select CRYPTO_CRC32C
3662306a36Sopenharmony_ci	select FS_IOMAP
3762306a36Sopenharmony_ci	select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
3862306a36Sopenharmony_ci	help
3962306a36Sopenharmony_ci	  This is the next generation of the ext3 filesystem.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	  Unlike the change from ext2 filesystem to ext3 filesystem,
4262306a36Sopenharmony_ci	  the on-disk format of ext4 is not forwards compatible with
4362306a36Sopenharmony_ci	  ext3; it is based on extent maps and it supports 48-bit
4462306a36Sopenharmony_ci	  physical block numbers.  The ext4 filesystem also supports delayed
4562306a36Sopenharmony_ci	  allocation, persistent preallocation, high resolution time stamps,
4662306a36Sopenharmony_ci	  and a number of other features to improve performance and speed
4762306a36Sopenharmony_ci	  up fsck time.  For more information, please see the web pages at
4862306a36Sopenharmony_ci	  http://ext4.wiki.kernel.org.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	  The ext4 filesystem supports mounting an ext3 filesystem; while there
5162306a36Sopenharmony_ci	  are some performance gains from the delayed allocation and inode
5262306a36Sopenharmony_ci	  table readahead, the best performance gains require enabling ext4
5362306a36Sopenharmony_ci	  features in the filesystem using tune2fs, or formatting a new
5462306a36Sopenharmony_ci	  filesystem as an ext4 filesystem initially. Without explicit enabling
5562306a36Sopenharmony_ci	  of ext4 features, the on disk filesystem format stays fully backward
5662306a36Sopenharmony_ci	  compatible.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	  To compile this file system support as a module, choose M here. The
5962306a36Sopenharmony_ci	  module will be called ext4.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci	  If unsure, say N.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig EXT4_USE_FOR_EXT2
6462306a36Sopenharmony_ci	bool "Use ext4 for ext2 file systems"
6562306a36Sopenharmony_ci	depends on EXT4_FS
6662306a36Sopenharmony_ci	depends on EXT2_FS=n
6762306a36Sopenharmony_ci	default y
6862306a36Sopenharmony_ci	help
6962306a36Sopenharmony_ci	  Allow the ext4 file system driver code to be used for ext2
7062306a36Sopenharmony_ci	  file system mounts.  This allows users to reduce their
7162306a36Sopenharmony_ci	  compiled kernel size by using one file system driver for
7262306a36Sopenharmony_ci	  ext2, ext3, and ext4 file systems.
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciconfig EXT4_FS_POSIX_ACL
7562306a36Sopenharmony_ci	bool "Ext4 POSIX Access Control Lists"
7662306a36Sopenharmony_ci	depends on EXT4_FS
7762306a36Sopenharmony_ci	select FS_POSIX_ACL
7862306a36Sopenharmony_ci	help
7962306a36Sopenharmony_ci	  POSIX Access Control Lists (ACLs) support permissions for users and
8062306a36Sopenharmony_ci	  groups beyond the owner/group/world scheme.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci	  If you don't know what Access Control Lists are, say N
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciconfig EXT4_FS_SECURITY
8562306a36Sopenharmony_ci	bool "Ext4 Security Labels"
8662306a36Sopenharmony_ci	depends on EXT4_FS
8762306a36Sopenharmony_ci	help
8862306a36Sopenharmony_ci	  Security labels support alternative access control models
8962306a36Sopenharmony_ci	  implemented by security modules like SELinux.  This option
9062306a36Sopenharmony_ci	  enables an extended attribute handler for file security
9162306a36Sopenharmony_ci	  labels in the ext4 filesystem.
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci	  If you are not using a security module that requires using
9462306a36Sopenharmony_ci	  extended attributes for file security labels, say N.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciconfig EXT4_DEBUG
9762306a36Sopenharmony_ci	bool "Ext4 debugging support"
9862306a36Sopenharmony_ci	depends on EXT4_FS
9962306a36Sopenharmony_ci	help
10062306a36Sopenharmony_ci	  Enables run-time debugging support for the ext4 filesystem.
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci	  If you select Y here, then you will be able to turn on debugging
10362306a36Sopenharmony_ci	  using dynamic debug control for mb_debug() / ext_debug() msgs.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciconfig EXT4_KUNIT_TESTS
10662306a36Sopenharmony_ci	tristate "KUnit tests for ext4" if !KUNIT_ALL_TESTS
10762306a36Sopenharmony_ci	depends on EXT4_FS && KUNIT
10862306a36Sopenharmony_ci	default KUNIT_ALL_TESTS
10962306a36Sopenharmony_ci	help
11062306a36Sopenharmony_ci	  This builds the ext4 KUnit tests.
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci	  KUnit tests run during boot and output the results to the debug log
11362306a36Sopenharmony_ci	  in TAP format (https://testanything.org/). Only useful for kernel devs
11462306a36Sopenharmony_ci	  running KUnit test harness and are not for inclusion into a production
11562306a36Sopenharmony_ci	  build.
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci	  For more information on KUnit and unit tests in general please refer
11862306a36Sopenharmony_ci	  to the KUnit documentation in Documentation/dev-tools/kunit/.
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci	  If unsure, say N.
121