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