]> Git Repo - linux.git/blame - fs/Kconfig
mm: remove the extra ZONE_DEVICE struct page refcount
[linux.git] / fs / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
1da177e4
LT
2#
3# File system configuration
4#
5
6menu "File systems"
7
bfcfaa77
LT
8# Use unaligned word dcache accesses
9config DCACHE_WORD_ACCESS
10 bool
11
31d921c7
DH
12config VALIDATE_FS_PARSER
13 bool "Validate filesystem parameter description"
31d921c7
DH
14 help
15 Enable this to perform validation of the parameter description for a
16 filesystem when it is registered.
17
ae259a9c
CH
18config FS_IOMAP
19 bool
20
ca72d221
CH
21if BLOCK
22
6da0b38f 23source "fs/ext2/Kconfig"
6da0b38f 24source "fs/ext4/Kconfig"
6da0b38f 25source "fs/jbd2/Kconfig"
dab291af 26
1da177e4 27config FS_MBCACHE
02ea2104 28# Meta block cache for Extended Attributes (ext2/ext3/ext4)
1da177e4 29 tristate
2c512397 30 default y if EXT2_FS=y && EXT2_FS_XATTR
939da108 31 default y if EXT4_FS=y
c290ea01 32 default m if EXT2_FS_XATTR || EXT4_FS
1da177e4 33
b16ecfe2 34source "fs/reiserfs/Kconfig"
f5c77969 35source "fs/jfs/Kconfig"
1da177e4 36
69050eee
TS
37source "fs/xfs/Kconfig"
38source "fs/gfs2/Kconfig"
39source "fs/ocfs2/Kconfig"
40source "fs/btrfs/Kconfig"
41f4db0f 41source "fs/nilfs2/Kconfig"
d7196c5a 42source "fs/f2fs/Kconfig"
8dcc1a9d 43source "fs/zonefs/Kconfig"
69050eee 44
b842f1d1
CH
45endif # BLOCK
46
6cd176a5 47config FS_DAX
6c97ec17 48 bool "File system based Direct Access (DAX) support"
6cd176a5 49 depends on MMU
d92576f1 50 depends on !(ARM || MIPS || SPARC)
6affb9d7 51 select FS_IOMAP
ef510424 52 select DAX
6cd176a5
MW
53 help
54 Direct Access (DAX) can be used on memory-backed block devices.
55 If the block device supports DAX and the filesystem supports DAX,
56 then you can avoid using the pagecache to buffer I/Os. Turning
6c97ec17
CH
57 on this option will compile in support for DAX.
58
59 For a DAX device to support file system access it needs to have
60 struct pages. For the nfit based NVDIMMs this can be enabled
61 using the ndctl utility:
62
63 # ndctl create-namespace --force --reconfig=namespace0.0 \
64 --mode=fsdax --map=mem
65
66 See the 'create-namespace' man page for details on the overhead of
67 --map=mem:
68 https://docs.pmem.io/ndctl-user-guide/ndctl-man-pages/ndctl-create-namespace
69
70 For ndctl to work CONFIG_DEV_DAX needs to be enabled as well. For most
71 file systems DAX support needs to be manually enabled globally or
72 per-inode using a mount option as well. See the file documentation in
73 Documentation/filesystems/dax.rst for details.
6cd176a5
MW
74
75 If you do not have a block device that is capable of using this,
76 or if unsure, say N. Saying Y will increase the size of the kernel
77 by about 5kB.
78
ee82c9ed
DW
79config FS_DAX_PMD
80 bool
81 default FS_DAX
82 depends on FS_DAX
c046c321
DW
83 depends on ZONE_DEVICE
84 depends on TRANSPARENT_HUGEPAGE
ee82c9ed 85
569d0365
DW
86# Selected by DAX drivers that do not expect filesystem DAX to support
87# get_user_pages() of DAX mappings. I.e. "limited" indicates no support
88# for fork() of processes with MAP_SHARED mappings or support for
89# direct-I/O to a DAX mapping.
90config FS_DAX_LIMITED
91 bool
92
16ebe911
RD
93# Posix ACL utility routines
94#
95# Note: Posix ACLs can be implemented without these helpers. Never use
96# this symbol for ifdefs in core code.
97#
98config FS_POSIX_ACL
99 def_bool n
100
4199ca77 101config EXPORTFS
79fead47 102 tristate
4199ca77 103
15d66ac2
BC
104config EXPORTFS_BLOCK_OPS
105 bool "Enable filesystem export operations for block IO"
106 help
107 This option enables the export operations for a filesystem to support
108 external block IO.
109
bfcd17a6 110config FILE_LOCKING
6a108a14 111 bool "Enable POSIX file locking API" if EXPERT
bfcd17a6
TP
112 default y
113 help
114 This option enables standard file locking support, required
115 for filesystems like NFS and for the flock() system
116 call. Disabling this option saves about 11k.
117
0b81d077
JK
118source "fs/crypto/Kconfig"
119
671e67b4
EB
120source "fs/verity/Kconfig"
121
272eb014 122source "fs/notify/Kconfig"
0eeca283 123
884d179d 124source "fs/quota/Kconfig"
1da177e4 125
2a3ae0a1 126source "fs/autofs/Kconfig"
3ef7784e 127source "fs/fuse/Kconfig"
e9be9d5e 128source "fs/overlayfs/Kconfig"
04578f17 129
06b3db1b
DH
130menu "Caches"
131
3d3c9504 132source "fs/netfs/Kconfig"
06b3db1b 133source "fs/fscache/Kconfig"
9ae326a6 134source "fs/cachefiles/Kconfig"
06b3db1b
DH
135
136endmenu
137
9361401e 138if BLOCK
1da177e4
LT
139menu "CD-ROM/DVD Filesystems"
140
ddfaccd9
AD
141source "fs/isofs/Kconfig"
142source "fs/udf/Kconfig"
1da177e4
LT
143
144endmenu
25fad945 145endif # BLOCK
1da177e4 146
9361401e 147if BLOCK
b9d1e2e6 148menu "DOS/FAT/EXFAT/NT Filesystems"
1da177e4 149
1c6ace01 150source "fs/fat/Kconfig"
b9d1e2e6 151source "fs/exfat/Kconfig"
9d73ac9e 152source "fs/ntfs/Kconfig"
6e5be40d 153source "fs/ntfs3/Kconfig"
1da177e4
LT
154
155endmenu
25fad945 156endif # BLOCK
1da177e4
LT
157
158menu "Pseudo filesystems"
159
6eedf8d3 160source "fs/proc/Kconfig"
ba341d55 161source "fs/kernfs/Kconfig"
5f3a211a 162source "fs/sysfs/Kconfig"
1da177e4 163
1da177e4 164config TMPFS
f5fc870d 165 bool "Tmpfs virtual memory file system support (former shm fs)"
3f96b79a 166 depends on SHMEM
1da177e4
LT
167 help
168 Tmpfs is a file system which keeps all files in virtual memory.
169
170 Everything in tmpfs is temporary in the sense that no files will be
171 created on your hard drive. The files live in memory and swap
172 space. If you unmount a tmpfs instance, everything stored therein is
173 lost.
174
0c1bc6b8 175 See <file:Documentation/filesystems/tmpfs.rst> for details.
1da177e4 176
4db70f73
EP
177config TMPFS_POSIX_ACL
178 bool "Tmpfs POSIX Access Control Lists"
179 depends on TMPFS
180 select TMPFS_XATTR
feda821e 181 select FS_POSIX_ACL
4db70f73 182 help
206506cc
RD
183 POSIX Access Control Lists (ACLs) support additional access rights
184 for users and groups beyond the standard owner/group/world scheme,
185 and this option selects support for ACLs specifically for tmpfs
186 filesystems.
187
188 If you've selected TMPFS, it's possible that you'll also need
189 this option as there are a number of Linux distros that require
190 POSIX ACL support under /dev for certain features to work properly.
191 For example, some distros need this feature for ALSA-related /dev
192 files for sound to work properly. In short, if you're not sure,
193 say Y.
4db70f73 194
b09e0fa4
EP
195config TMPFS_XATTR
196 bool "Tmpfs extended attributes"
197 depends on TMPFS
198 default n
199 help
200 Extended attributes are name:value pairs associated with inodes by
91581e4c 201 the kernel or by users (see the attr(5) manual page for details).
b09e0fa4
EP
202
203 Currently this enables support for the trusted.* and
204 security.* namespaces.
205
b09e0fa4
EP
206 You need this for POSIX ACL support on tmpfs.
207
4db70f73 208 If unsure, say N.
39f0247d 209
ea3271f7
CD
210config TMPFS_INODE64
211 bool "Use 64-bit ino_t by default in tmpfs"
d0ed78e1 212 depends on TMPFS && 64BIT
ea3271f7
CD
213 default n
214 help
215 tmpfs has historically used only inode numbers as wide as an unsigned
216 int. In some cases this can cause wraparound, potentially resulting
217 in multiple files with the same inode number on a single device. This
218 option makes tmpfs use the full width of ino_t by default, without
219 needing to specify the inode64 option when mounting.
220
221 But if a long-lived tmpfs is to be accessed by 32-bit applications so
222 ancient that opening a file larger than 2GiB fails with EINVAL, then
223 the INODE64 config option and inode64 mount option risk operations
224 failing with EOVERFLOW once 33-bit inode numbers are reached.
225
226 To override this configured default, use the inode32 or inode64
227 option when mounting.
228
229 If unsure, say N.
230
855f9a8e
AK
231config ARCH_SUPPORTS_HUGETLBFS
232 def_bool n
233
1da177e4
LT
234config HUGETLBFS
235 bool "HugeTLB file system support"
bb9c14ad 236 depends on X86 || IA64 || SPARC64 || ARCH_SUPPORTS_HUGETLBFS || BROKEN
dda27d1a
AO
237 help
238 hugetlbfs is a filesystem backing for HugeTLB pages, based on
239 ramfs. For architectures that support it, say Y here and read
1ad1335d 240 <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details.
dda27d1a
AO
241
242 If unsure, say N.
1da177e4
LT
243
244config HUGETLB_PAGE
245 def_bool HUGETLBFS
246
6be24bed
MS
247config HUGETLB_PAGE_FREE_VMEMMAP
248 def_bool HUGETLB_PAGE
249 depends on X86_64
250 depends on SPARSEMEM_VMEMMAP
251
e6d41f12
MS
252config HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON
253 bool "Default freeing vmemmap pages of HugeTLB to on"
254 default n
255 depends on HUGETLB_PAGE_FREE_VMEMMAP
256 help
257 When using HUGETLB_PAGE_FREE_VMEMMAP, the freeing unused vmemmap
258 pages associated with each HugeTLB page is default off. Say Y here
259 to enable freeing vmemmap pages of HugeTLB by default. It can then
260 be disabled on the command line via hugetlb_free_vmemmap=off.
261
5d752600
MK
262config MEMFD_CREATE
263 def_bool TMPFS || HUGETLBFS
264
461a7184
YX
265config ARCH_HAS_GIGANTIC_PAGE
266 bool
267
4591dabe 268source "fs/configfs/Kconfig"
62c204dd 269source "fs/efivarfs/Kconfig"
7063fbf2 270
1da177e4
LT
271endmenu
272
67ec7d3a
RD
273menuconfig MISC_FILESYSTEMS
274 bool "Miscellaneous filesystems"
275 default y
a7f7f624 276 help
67ec7d3a
RD
277 Say Y here to get to see options for various miscellaneous
278 filesystems, such as filesystems that came from other
279 operating systems.
280
281 This option alone does not add any kernel code.
282
283 If you say N, all options in this submenu will be skipped and
284 disabled; if unsure, say Y here.
285
286if MISC_FILESYSTEMS
1da177e4 287
07f01962 288source "fs/orangefs/Kconfig"
bc2de2ae 289source "fs/adfs/Kconfig"
10951bf0 290source "fs/affs/Kconfig"
295c896c 291source "fs/ecryptfs/Kconfig"
b08bac1f
AD
292source "fs/hfs/Kconfig"
293source "fs/hfsplus/Kconfig"
0b09eb32 294source "fs/befs/Kconfig"
0ff42384 295source "fs/bfs/Kconfig"
571f0a0b 296source "fs/efs/Kconfig"
31db6e9e 297source "fs/jffs2/Kconfig"
0d7eff87
AB
298# UBIFS File system configuration
299source "fs/ubifs/Kconfig"
2a22783b 300source "fs/cramfs/Kconfig"
22635ec9 301source "fs/squashfs/Kconfig"
22135169 302source "fs/freevxfs/Kconfig"
8b1cd7d3 303source "fs/minix/Kconfig"
da55e6f9 304source "fs/omfs/Kconfig"
928ea192 305source "fs/hpfs/Kconfig"
4c741583 306source "fs/qnx4/Kconfig"
5d026c72 307source "fs/qnx6/Kconfig"
41810246 308source "fs/romfs/Kconfig"
ca01d6dd 309source "fs/pstore/Kconfig"
8af915ba 310source "fs/sysv/Kconfig"
a276a52f 311source "fs/ufs/Kconfig"
47e4937a 312source "fs/erofs/Kconfig"
0fd16957 313source "fs/vboxsf/Kconfig"
0c4fb877 314
67ec7d3a 315endif # MISC_FILESYSTEMS
1da177e4 316
ea0985ad
JE
317menuconfig NETWORK_FILESYSTEMS
318 bool "Network File Systems"
319 default y
1da177e4 320 depends on NET
a7f7f624 321 help
ea0985ad
JE
322 Say Y here to get to see options for network filesystems and
323 filesystem-related networking code, such as NFS daemon and
324 RPCSEC security modules.
6fb1bc10 325
ea0985ad
JE
326 This option alone does not add any kernel code.
327
328 If you say N, all options in this submenu will be skipped and
329 disabled; if unsure, say Y here.
330
331if NETWORK_FILESYSTEMS
1da177e4 332
97afe47a 333source "fs/nfs/Kconfig"
e2b329e2 334source "fs/nfsd/Kconfig"
1da177e4 335
f7790029
JL
336config GRACE_PERIOD
337 tristate
338
1da177e4
LT
339config LOCKD
340 tristate
dd4dc82d 341 depends on FILE_LOCKING
f7790029 342 select GRACE_PERIOD
1da177e4
LT
343
344config LOCKD_V4
345 bool
346 depends on NFSD_V3 || NFS_V3
dd4dc82d 347 depends on FILE_LOCKING
1da177e4
LT
348 default y
349
a257cdd0
AG
350config NFS_ACL_SUPPORT
351 tristate
352 select FS_POSIX_ACL
353
354config NFS_COMMON
355 bool
f7790029 356 depends on NFSD || NFS_FS || LOCKD
a257cdd0
AG
357 default y
358
02591f9f 359config NFS_V4_2_SSC_HELPER
d9092b4b
DN
360 bool
361 default y if NFS_V4_2
02591f9f 362
9098c24f 363source "net/sunrpc/Kconfig"
9030aaf9 364source "fs/ceph/Kconfig"
71c02863 365
bb26b963 366source "fs/cifs/Kconfig"
1a93084b 367source "fs/ksmbd/Kconfig"
71c02863 368
23e91d8b 369config SMBFS_COMMON
71c02863 370 tristate
f9929ef6
NJ
371 default y if CIFS=y || SMB_SERVER=y
372 default m if CIFS=m || SMB_SERVER=m
71c02863 373
33a1a6fe 374source "fs/coda/Kconfig"
b2480c7f 375source "fs/afs/Kconfig"
0fcb4408 376source "fs/9p/Kconfig"
93fa58cb 377
ea0985ad 378endif # NETWORK_FILESYSTEMS
1da177e4 379
1da177e4 380source "fs/nls/Kconfig"
e7fd4179 381source "fs/dlm/Kconfig"
955405d1 382source "fs/unicode/Kconfig"
1da177e4 383
771b53d0
JA
384config IO_WQ
385 bool
386
1da177e4 387endmenu
This page took 0.979121 seconds and 4 git commands to generate.