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