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/dec/Kconfig" 122 123source "fs/verity/Kconfig" 124 125source "fs/notify/Kconfig" 126 127source "fs/quota/Kconfig" 128 129source "fs/autofs/Kconfig" 130source "fs/fuse/Kconfig" 131source "fs/overlayfs/Kconfig" 132 133menu "Caches" 134 135source "fs/fscache/Kconfig" 136source "fs/cachefiles/Kconfig" 137 138endmenu 139 140if BLOCK 141menu "CD-ROM/DVD Filesystems" 142 143source "fs/isofs/Kconfig" 144source "fs/udf/Kconfig" 145 146endmenu 147endif # BLOCK 148 149if BLOCK 150menu "DOS/FAT/EXFAT/NT Filesystems" 151 152source "fs/fat/Kconfig" 153source "fs/exfat/Kconfig" 154source "fs/ntfs/Kconfig" 155 156endmenu 157endif # BLOCK 158 159menu "Pseudo filesystems" 160 161source "fs/proc/Kconfig" 162source "fs/kernfs/Kconfig" 163source "fs/sysfs/Kconfig" 164 165config TMPFS 166 bool "Tmpfs virtual memory file system support (former shm fs)" 167 depends on SHMEM 168 help 169 Tmpfs is a file system which keeps all files in virtual memory. 170 171 Everything in tmpfs is temporary in the sense that no files will be 172 created on your hard drive. The files live in memory and swap 173 space. If you unmount a tmpfs instance, everything stored therein is 174 lost. 175 176 See <file:Documentation/filesystems/tmpfs.rst> for details. 177 178config TMPFS_POSIX_ACL 179 bool "Tmpfs POSIX Access Control Lists" 180 depends on TMPFS 181 select TMPFS_XATTR 182 select FS_POSIX_ACL 183 help 184 POSIX Access Control Lists (ACLs) support additional access rights 185 for users and groups beyond the standard owner/group/world scheme, 186 and this option selects support for ACLs specifically for tmpfs 187 filesystems. 188 189 If you've selected TMPFS, it's possible that you'll also need 190 this option as there are a number of Linux distros that require 191 POSIX ACL support under /dev for certain features to work properly. 192 For example, some distros need this feature for ALSA-related /dev 193 files for sound to work properly. In short, if you're not sure, 194 say Y. 195 196config TMPFS_XATTR 197 bool "Tmpfs extended attributes" 198 depends on TMPFS 199 default n 200 help 201 Extended attributes are name:value pairs associated with inodes by 202 the kernel or by users (see the attr(5) manual page for details). 203 204 Currently this enables support for the trusted.* and 205 security.* namespaces. 206 207 You need this for POSIX ACL support on tmpfs. 208 209 If unsure, say N. 210 211config TMPFS_INODE64 212 bool "Use 64-bit ino_t by default in tmpfs" 213 depends on TMPFS && 64BIT && !(S390 || ALPHA) 214 default n 215 help 216 tmpfs has historically used only inode numbers as wide as an unsigned 217 int. In some cases this can cause wraparound, potentially resulting 218 in multiple files with the same inode number on a single device. This 219 option makes tmpfs use the full width of ino_t by default, without 220 needing to specify the inode64 option when mounting. 221 222 But if a long-lived tmpfs is to be accessed by 32-bit applications so 223 ancient that opening a file larger than 2GiB fails with EINVAL, then 224 the INODE64 config option and inode64 mount option risk operations 225 failing with EOVERFLOW once 33-bit inode numbers are reached. 226 227 To override this configured default, use the inode32 or inode64 228 option when mounting. 229 230 If unsure, say N. 231 232config HUGETLBFS 233 bool "HugeTLB file system support" 234 depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \ 235 SYS_SUPPORTS_HUGETLBFS || BROKEN 236 help 237 hugetlbfs is a filesystem backing for HugeTLB pages, based on 238 ramfs. For architectures that support it, say Y here and read 239 <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details. 240 241 If unsure, say N. 242 243config HUGETLB_PAGE 244 def_bool HUGETLBFS 245 246config MEMFD_CREATE 247 def_bool TMPFS || HUGETLBFS 248 249config ARCH_HAS_GIGANTIC_PAGE 250 bool 251 252source "fs/configfs/Kconfig" 253source "fs/efivarfs/Kconfig" 254 255endmenu 256 257menuconfig MISC_FILESYSTEMS 258 bool "Miscellaneous filesystems" 259 default y 260 help 261 Say Y here to get to see options for various miscellaneous 262 filesystems, such as filesystems that came from other 263 operating systems. 264 265 This option alone does not add any kernel code. 266 267 If you say N, all options in this submenu will be skipped and 268 disabled; if unsure, say Y here. 269 270if MISC_FILESYSTEMS 271 272source "fs/orangefs/Kconfig" 273source "fs/adfs/Kconfig" 274source "fs/affs/Kconfig" 275source "fs/ecryptfs/Kconfig" 276source "fs/hfs/Kconfig" 277source "fs/hfsplus/Kconfig" 278source "fs/befs/Kconfig" 279source "fs/bfs/Kconfig" 280source "fs/efs/Kconfig" 281source "fs/jffs2/Kconfig" 282# UBIFS File system configuration 283source "fs/ubifs/Kconfig" 284source "fs/cramfs/Kconfig" 285source "fs/squashfs/Kconfig" 286source "fs/freevxfs/Kconfig" 287source "fs/minix/Kconfig" 288source "fs/omfs/Kconfig" 289source "fs/hpfs/Kconfig" 290source "fs/qnx4/Kconfig" 291source "fs/qnx6/Kconfig" 292source "fs/romfs/Kconfig" 293source "fs/pstore/Kconfig" 294source "fs/sysv/Kconfig" 295source "fs/ufs/Kconfig" 296source "fs/erofs/Kconfig" 297source "fs/vboxsf/Kconfig" 298 299endif # MISC_FILESYSTEMS 300 301menuconfig NETWORK_FILESYSTEMS 302 bool "Network File Systems" 303 default y 304 depends on NET 305 help 306 Say Y here to get to see options for network filesystems and 307 filesystem-related networking code, such as NFS daemon and 308 RPCSEC security modules. 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 315if NETWORK_FILESYSTEMS 316 317source "fs/nfs/Kconfig" 318source "fs/nfsd/Kconfig" 319 320config GRACE_PERIOD 321 tristate 322 323config LOCKD 324 tristate 325 depends on FILE_LOCKING 326 select GRACE_PERIOD 327 328config LOCKD_V4 329 bool 330 depends on NFSD_V3 || NFS_V3 331 depends on FILE_LOCKING 332 default y 333 334config NFS_ACL_SUPPORT 335 tristate 336 select FS_POSIX_ACL 337 338config NFS_COMMON 339 bool 340 depends on NFSD || NFS_FS || LOCKD 341 default y 342 343source "net/sunrpc/Kconfig" 344source "fs/ceph/Kconfig" 345source "fs/cifs/Kconfig" 346source "fs/coda/Kconfig" 347source "fs/afs/Kconfig" 348source "fs/9p/Kconfig" 349 350endif # NETWORK_FILESYSTEMS 351 352source "fs/nls/Kconfig" 353source "fs/dlm/Kconfig" 354source "fs/unicode/Kconfig" 355source "fs/epfs/Kconfig" 356 357config IO_WQ 358 bool 359 360endmenu 361