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