1# SPDX-License-Identifier: GPL-2.0-only
2# Ext3 configs are here for backward compatibility with old configs which may
3# have EXT3_FS set but not EXT4_FS set and thus would result in non-bootable
4# kernels after the removal of ext3 driver.
5config EXT3_FS
6	tristate "The Extended 3 (ext3) filesystem"
7	select EXT4_FS
8	help
9	  This config option is here only for backward compatibility. ext3
10	  filesystem is now handled by the ext4 driver.
11
12config EXT3_FS_POSIX_ACL
13	bool "Ext3 POSIX Access Control Lists"
14	depends on EXT3_FS
15	select EXT4_FS_POSIX_ACL
16	select FS_POSIX_ACL
17	help
18	  This config option is here only for backward compatibility. ext3
19	  filesystem is now handled by the ext4 driver.
20
21config EXT3_FS_SECURITY
22	bool "Ext3 Security Labels"
23	depends on EXT3_FS
24	select EXT4_FS_SECURITY
25	help
26	  This config option is here only for backward compatibility. ext3
27	  filesystem is now handled by the ext4 driver.
28
29config EXT4_FS
30	tristate "The Extended 4 (ext4) filesystem"
31	select BUFFER_HEAD
32	select JBD2
33	select CRC16
34	select CRYPTO
35	select CRYPTO_CRC32C
36	select FS_IOMAP
37	select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
38	help
39	  This is the next generation of the ext3 filesystem.
40
41	  Unlike the change from ext2 filesystem to ext3 filesystem,
42	  the on-disk format of ext4 is not forwards compatible with
43	  ext3; it is based on extent maps and it supports 48-bit
44	  physical block numbers.  The ext4 filesystem also supports delayed
45	  allocation, persistent preallocation, high resolution time stamps,
46	  and a number of other features to improve performance and speed
47	  up fsck time.  For more information, please see the web pages at
48	  http://ext4.wiki.kernel.org.
49
50	  The ext4 filesystem supports mounting an ext3 filesystem; while there
51	  are some performance gains from the delayed allocation and inode
52	  table readahead, the best performance gains require enabling ext4
53	  features in the filesystem using tune2fs, or formatting a new
54	  filesystem as an ext4 filesystem initially. Without explicit enabling
55	  of ext4 features, the on disk filesystem format stays fully backward
56	  compatible.
57
58	  To compile this file system support as a module, choose M here. The
59	  module will be called ext4.
60
61	  If unsure, say N.
62
63config EXT4_USE_FOR_EXT2
64	bool "Use ext4 for ext2 file systems"
65	depends on EXT4_FS
66	depends on EXT2_FS=n
67	default y
68	help
69	  Allow the ext4 file system driver code to be used for ext2
70	  file system mounts.  This allows users to reduce their
71	  compiled kernel size by using one file system driver for
72	  ext2, ext3, and ext4 file systems.
73
74config EXT4_FS_POSIX_ACL
75	bool "Ext4 POSIX Access Control Lists"
76	depends on EXT4_FS
77	select FS_POSIX_ACL
78	help
79	  POSIX Access Control Lists (ACLs) support permissions for users and
80	  groups beyond the owner/group/world scheme.
81
82	  If you don't know what Access Control Lists are, say N
83
84config EXT4_FS_SECURITY
85	bool "Ext4 Security Labels"
86	depends on EXT4_FS
87	help
88	  Security labels support alternative access control models
89	  implemented by security modules like SELinux.  This option
90	  enables an extended attribute handler for file security
91	  labels in the ext4 filesystem.
92
93	  If you are not using a security module that requires using
94	  extended attributes for file security labels, say N.
95
96config EXT4_DEBUG
97	bool "Ext4 debugging support"
98	depends on EXT4_FS
99	help
100	  Enables run-time debugging support for the ext4 filesystem.
101
102	  If you select Y here, then you will be able to turn on debugging
103	  using dynamic debug control for mb_debug() / ext_debug() msgs.
104
105config EXT4_KUNIT_TESTS
106	tristate "KUnit tests for ext4" if !KUNIT_ALL_TESTS
107	depends on EXT4_FS && KUNIT
108	default KUNIT_ALL_TESTS
109	help
110	  This builds the ext4 KUnit tests.
111
112	  KUnit tests run during boot and output the results to the debug log
113	  in TAP format (https://testanything.org/). Only useful for kernel devs
114	  running KUnit test harness and are not for inclusion into a production
115	  build.
116
117	  For more information on KUnit and unit tests in general please refer
118	  to the KUnit documentation in Documentation/dev-tools/kunit/.
119
120	  If unsure, say N.
121