]>
Commit | Line | Data |
---|---|---|
1 | # SPDX-License-Identifier: GPL-2.0-only | |
2 | # | |
3 | # File system configuration | |
4 | # | |
5 | ||
6 | menu "File systems" | |
7 | ||
8 | # Use unaligned word dcache accesses | |
9 | config DCACHE_WORD_ACCESS | |
10 | bool | |
11 | ||
12 | config VALIDATE_FS_PARSER | |
13 | bool "Validate filesystem parameter description" | |
14 | help | |
15 | Enable this to perform validation of the parameter description for a | |
16 | filesystem when it is registered. | |
17 | ||
18 | if BLOCK | |
19 | ||
20 | config FS_IOMAP | |
21 | bool | |
22 | ||
23 | source "fs/ext2/Kconfig" | |
24 | source "fs/ext4/Kconfig" | |
25 | source "fs/jbd2/Kconfig" | |
26 | ||
27 | config FS_MBCACHE | |
28 | # Meta block cache for Extended Attributes (ext2/ext3/ext4) | |
29 | tristate | |
30 | default y if EXT2_FS=y && EXT2_FS_XATTR | |
31 | default y if EXT4_FS=y | |
32 | default m if EXT2_FS_XATTR || EXT4_FS | |
33 | ||
34 | source "fs/reiserfs/Kconfig" | |
35 | source "fs/jfs/Kconfig" | |
36 | ||
37 | source "fs/xfs/Kconfig" | |
38 | source "fs/gfs2/Kconfig" | |
39 | source "fs/ocfs2/Kconfig" | |
40 | source "fs/btrfs/Kconfig" | |
41 | source "fs/nilfs2/Kconfig" | |
42 | source "fs/f2fs/Kconfig" | |
43 | source "fs/zonefs/Kconfig" | |
44 | ||
45 | config FS_DAX | |
46 | bool "Direct Access (DAX) support" | |
47 | depends on MMU | |
48 | depends on !(ARM || MIPS || SPARC) | |
49 | select DEV_PAGEMAP_OPS if (ZONE_DEVICE && !FS_DAX_LIMITED) | |
50 | select FS_IOMAP | |
51 | select DAX | |
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 | |
56 | on this option will compile in support for DAX; you will need to | |
57 | mount the filesystem using the -o dax option. | |
58 | ||
59 | If you do not have a block device that is capable of using this, | |
60 | or if unsure, say N. Saying Y will increase the size of the kernel | |
61 | by about 5kB. | |
62 | ||
63 | config FS_DAX_PMD | |
64 | bool | |
65 | default FS_DAX | |
66 | depends on FS_DAX | |
67 | depends on ZONE_DEVICE | |
68 | depends on TRANSPARENT_HUGEPAGE | |
69 | ||
70 | # Selected by DAX drivers that do not expect filesystem DAX to support | |
71 | # get_user_pages() of DAX mappings. I.e. "limited" indicates no support | |
72 | # for fork() of processes with MAP_SHARED mappings or support for | |
73 | # direct-I/O to a DAX mapping. | |
74 | config FS_DAX_LIMITED | |
75 | bool | |
76 | ||
77 | endif # BLOCK | |
78 | ||
79 | # Posix ACL utility routines | |
80 | # | |
81 | # Note: Posix ACLs can be implemented without these helpers. Never use | |
82 | # this symbol for ifdefs in core code. | |
83 | # | |
84 | config FS_POSIX_ACL | |
85 | def_bool n | |
86 | ||
87 | config EXPORTFS | |
88 | tristate | |
89 | ||
90 | config EXPORTFS_BLOCK_OPS | |
91 | bool "Enable filesystem export operations for block IO" | |
92 | help | |
93 | This option enables the export operations for a filesystem to support | |
94 | external block IO. | |
95 | ||
96 | config FILE_LOCKING | |
97 | bool "Enable POSIX file locking API" if EXPERT | |
98 | default y | |
99 | help | |
100 | This option enables standard file locking support, required | |
101 | for filesystems like NFS and for the flock() system | |
102 | call. Disabling this option saves about 11k. | |
103 | ||
104 | config MANDATORY_FILE_LOCKING | |
105 | bool "Enable Mandatory file locking" | |
106 | depends on FILE_LOCKING | |
107 | default y | |
108 | help | |
109 | This option enables files appropriately marked files on appropriely | |
110 | mounted filesystems to support mandatory locking. | |
111 | ||
112 | To the best of my knowledge this is dead code that no one cares about. | |
113 | ||
114 | source "fs/crypto/Kconfig" | |
115 | ||
116 | source "fs/verity/Kconfig" | |
117 | ||
118 | source "fs/notify/Kconfig" | |
119 | ||
120 | source "fs/quota/Kconfig" | |
121 | ||
122 | source "fs/autofs/Kconfig" | |
123 | source "fs/fuse/Kconfig" | |
124 | source "fs/overlayfs/Kconfig" | |
125 | ||
126 | menu "Caches" | |
127 | ||
128 | source "fs/netfs/Kconfig" | |
129 | source "fs/fscache/Kconfig" | |
130 | source "fs/cachefiles/Kconfig" | |
131 | ||
132 | endmenu | |
133 | ||
134 | if BLOCK | |
135 | menu "CD-ROM/DVD Filesystems" | |
136 | ||
137 | source "fs/isofs/Kconfig" | |
138 | source "fs/udf/Kconfig" | |
139 | ||
140 | endmenu | |
141 | endif # BLOCK | |
142 | ||
143 | if BLOCK | |
144 | menu "DOS/FAT/EXFAT/NT Filesystems" | |
145 | ||
146 | source "fs/fat/Kconfig" | |
147 | source "fs/exfat/Kconfig" | |
148 | source "fs/ntfs/Kconfig" | |
149 | ||
150 | endmenu | |
151 | endif # BLOCK | |
152 | ||
153 | menu "Pseudo filesystems" | |
154 | ||
155 | source "fs/proc/Kconfig" | |
156 | source "fs/kernfs/Kconfig" | |
157 | source "fs/sysfs/Kconfig" | |
158 | ||
159 | config TMPFS | |
160 | bool "Tmpfs virtual memory file system support (former shm fs)" | |
161 | depends on SHMEM | |
162 | help | |
163 | Tmpfs is a file system which keeps all files in virtual memory. | |
164 | ||
165 | Everything in tmpfs is temporary in the sense that no files will be | |
166 | created on your hard drive. The files live in memory and swap | |
167 | space. If you unmount a tmpfs instance, everything stored therein is | |
168 | lost. | |
169 | ||
170 | See <file:Documentation/filesystems/tmpfs.rst> for details. | |
171 | ||
172 | config TMPFS_POSIX_ACL | |
173 | bool "Tmpfs POSIX Access Control Lists" | |
174 | depends on TMPFS | |
175 | select TMPFS_XATTR | |
176 | select FS_POSIX_ACL | |
177 | help | |
178 | POSIX Access Control Lists (ACLs) support additional access rights | |
179 | for users and groups beyond the standard owner/group/world scheme, | |
180 | and this option selects support for ACLs specifically for tmpfs | |
181 | filesystems. | |
182 | ||
183 | If you've selected TMPFS, it's possible that you'll also need | |
184 | this option as there are a number of Linux distros that require | |
185 | POSIX ACL support under /dev for certain features to work properly. | |
186 | For example, some distros need this feature for ALSA-related /dev | |
187 | files for sound to work properly. In short, if you're not sure, | |
188 | say Y. | |
189 | ||
190 | config TMPFS_XATTR | |
191 | bool "Tmpfs extended attributes" | |
192 | depends on TMPFS | |
193 | default n | |
194 | help | |
195 | Extended attributes are name:value pairs associated with inodes by | |
196 | the kernel or by users (see the attr(5) manual page for details). | |
197 | ||
198 | Currently this enables support for the trusted.* and | |
199 | security.* namespaces. | |
200 | ||
201 | You need this for POSIX ACL support on tmpfs. | |
202 | ||
203 | If unsure, say N. | |
204 | ||
205 | config TMPFS_INODE64 | |
206 | bool "Use 64-bit ino_t by default in tmpfs" | |
207 | depends on TMPFS && 64BIT | |
208 | default n | |
209 | help | |
210 | tmpfs has historically used only inode numbers as wide as an unsigned | |
211 | int. In some cases this can cause wraparound, potentially resulting | |
212 | in multiple files with the same inode number on a single device. This | |
213 | option makes tmpfs use the full width of ino_t by default, without | |
214 | needing to specify the inode64 option when mounting. | |
215 | ||
216 | But if a long-lived tmpfs is to be accessed by 32-bit applications so | |
217 | ancient that opening a file larger than 2GiB fails with EINVAL, then | |
218 | the INODE64 config option and inode64 mount option risk operations | |
219 | failing with EOVERFLOW once 33-bit inode numbers are reached. | |
220 | ||
221 | To override this configured default, use the inode32 or inode64 | |
222 | option when mounting. | |
223 | ||
224 | If unsure, say N. | |
225 | ||
226 | config ARCH_SUPPORTS_HUGETLBFS | |
227 | def_bool n | |
228 | ||
229 | config HUGETLBFS | |
230 | bool "HugeTLB file system support" | |
231 | depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \ | |
232 | ARCH_SUPPORTS_HUGETLBFS || BROKEN | |
233 | help | |
234 | hugetlbfs is a filesystem backing for HugeTLB pages, based on | |
235 | ramfs. For architectures that support it, say Y here and read | |
236 | <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details. | |
237 | ||
238 | If unsure, say N. | |
239 | ||
240 | config HUGETLB_PAGE | |
241 | def_bool HUGETLBFS | |
242 | ||
243 | config HUGETLB_PAGE_FREE_VMEMMAP | |
244 | def_bool HUGETLB_PAGE | |
245 | depends on X86_64 | |
246 | depends on SPARSEMEM_VMEMMAP | |
247 | ||
248 | config HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON | |
249 | bool "Default freeing vmemmap pages of HugeTLB to on" | |
250 | default n | |
251 | depends on HUGETLB_PAGE_FREE_VMEMMAP | |
252 | help | |
253 | When using HUGETLB_PAGE_FREE_VMEMMAP, the freeing unused vmemmap | |
254 | pages associated with each HugeTLB page is default off. Say Y here | |
255 | to enable freeing vmemmap pages of HugeTLB by default. It can then | |
256 | be disabled on the command line via hugetlb_free_vmemmap=off. | |
257 | ||
258 | config MEMFD_CREATE | |
259 | def_bool TMPFS || HUGETLBFS | |
260 | ||
261 | config ARCH_HAS_GIGANTIC_PAGE | |
262 | bool | |
263 | ||
264 | source "fs/configfs/Kconfig" | |
265 | source "fs/efivarfs/Kconfig" | |
266 | ||
267 | endmenu | |
268 | ||
269 | menuconfig MISC_FILESYSTEMS | |
270 | bool "Miscellaneous filesystems" | |
271 | default y | |
272 | help | |
273 | Say Y here to get to see options for various miscellaneous | |
274 | filesystems, such as filesystems that came from other | |
275 | operating systems. | |
276 | ||
277 | This option alone does not add any kernel code. | |
278 | ||
279 | If you say N, all options in this submenu will be skipped and | |
280 | disabled; if unsure, say Y here. | |
281 | ||
282 | if MISC_FILESYSTEMS | |
283 | ||
284 | source "fs/orangefs/Kconfig" | |
285 | source "fs/adfs/Kconfig" | |
286 | source "fs/affs/Kconfig" | |
287 | source "fs/ecryptfs/Kconfig" | |
288 | source "fs/hfs/Kconfig" | |
289 | source "fs/hfsplus/Kconfig" | |
290 | source "fs/befs/Kconfig" | |
291 | source "fs/bfs/Kconfig" | |
292 | source "fs/efs/Kconfig" | |
293 | source "fs/jffs2/Kconfig" | |
294 | # UBIFS File system configuration | |
295 | source "fs/ubifs/Kconfig" | |
296 | source "fs/cramfs/Kconfig" | |
297 | source "fs/squashfs/Kconfig" | |
298 | source "fs/freevxfs/Kconfig" | |
299 | source "fs/minix/Kconfig" | |
300 | source "fs/omfs/Kconfig" | |
301 | source "fs/hpfs/Kconfig" | |
302 | source "fs/qnx4/Kconfig" | |
303 | source "fs/qnx6/Kconfig" | |
304 | source "fs/romfs/Kconfig" | |
305 | source "fs/pstore/Kconfig" | |
306 | source "fs/sysv/Kconfig" | |
307 | source "fs/ufs/Kconfig" | |
308 | source "fs/erofs/Kconfig" | |
309 | source "fs/vboxsf/Kconfig" | |
310 | ||
311 | endif # MISC_FILESYSTEMS | |
312 | ||
313 | menuconfig NETWORK_FILESYSTEMS | |
314 | bool "Network File Systems" | |
315 | default y | |
316 | depends on NET | |
317 | help | |
318 | Say Y here to get to see options for network filesystems and | |
319 | filesystem-related networking code, such as NFS daemon and | |
320 | RPCSEC security modules. | |
321 | ||
322 | This option alone does not add any kernel code. | |
323 | ||
324 | If you say N, all options in this submenu will be skipped and | |
325 | disabled; if unsure, say Y here. | |
326 | ||
327 | if NETWORK_FILESYSTEMS | |
328 | ||
329 | source "fs/nfs/Kconfig" | |
330 | source "fs/nfsd/Kconfig" | |
331 | ||
332 | config GRACE_PERIOD | |
333 | tristate | |
334 | ||
335 | config LOCKD | |
336 | tristate | |
337 | depends on FILE_LOCKING | |
338 | select GRACE_PERIOD | |
339 | ||
340 | config LOCKD_V4 | |
341 | bool | |
342 | depends on NFSD_V3 || NFS_V3 | |
343 | depends on FILE_LOCKING | |
344 | default y | |
345 | ||
346 | config NFS_ACL_SUPPORT | |
347 | tristate | |
348 | select FS_POSIX_ACL | |
349 | ||
350 | config NFS_COMMON | |
351 | bool | |
352 | depends on NFSD || NFS_FS || LOCKD | |
353 | default y | |
354 | ||
355 | config NFS_V4_2_SSC_HELPER | |
356 | bool | |
357 | default y if NFS_V4_2 | |
358 | ||
359 | source "net/sunrpc/Kconfig" | |
360 | source "fs/ceph/Kconfig" | |
361 | source "fs/cifs/Kconfig" | |
362 | source "fs/coda/Kconfig" | |
363 | source "fs/afs/Kconfig" | |
364 | source "fs/9p/Kconfig" | |
365 | ||
366 | endif # NETWORK_FILESYSTEMS | |
367 | ||
368 | source "fs/nls/Kconfig" | |
369 | source "fs/dlm/Kconfig" | |
370 | source "fs/unicode/Kconfig" | |
371 | ||
372 | config IO_WQ | |
373 | bool | |
374 | ||
375 | endmenu |