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