1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# File system configuration 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 61da177e4SLinus Torvaldsmenu "File systems" 71da177e4SLinus Torvalds 8bfcfaa77SLinus Torvalds# Use unaligned word dcache accesses 9bfcfaa77SLinus Torvaldsconfig DCACHE_WORD_ACCESS 10bfcfaa77SLinus Torvalds bool 11bfcfaa77SLinus Torvalds 1231d921c7SDavid Howellsconfig VALIDATE_FS_PARSER 1331d921c7SDavid Howells bool "Validate filesystem parameter description" 1431d921c7SDavid Howells help 1531d921c7SDavid Howells Enable this to perform validation of the parameter description for a 1631d921c7SDavid Howells filesystem when it is registered. 1731d921c7SDavid Howells 189361401eSDavid Howellsif BLOCK 199361401eSDavid Howells 20ae259a9cSChristoph Hellwigconfig FS_IOMAP 21ae259a9cSChristoph Hellwig bool 22ae259a9cSChristoph Hellwig 236da0b38fSAlexey Dobriyansource "fs/ext2/Kconfig" 246da0b38fSAlexey Dobriyansource "fs/ext4/Kconfig" 256da0b38fSAlexey Dobriyansource "fs/jbd2/Kconfig" 26dab291afSMingming Cao 271da177e4SLinus Torvaldsconfig FS_MBCACHE 2802ea2104SMingming Cao# Meta block cache for Extended Attributes (ext2/ext3/ext4) 291da177e4SLinus Torvalds tristate 302c512397SAdrian Bunk default y if EXT2_FS=y && EXT2_FS_XATTR 31939da108STao Ma default y if EXT4_FS=y 32c290ea01SJan Kara default m if EXT2_FS_XATTR || EXT4_FS 331da177e4SLinus Torvalds 34b16ecfe2SAlexey Dobriyansource "fs/reiserfs/Kconfig" 35f5c77969SAlexey Dobriyansource "fs/jfs/Kconfig" 361da177e4SLinus Torvalds 3769050eeeSTomas Szepesource "fs/xfs/Kconfig" 3869050eeeSTomas Szepesource "fs/gfs2/Kconfig" 3969050eeeSTomas Szepesource "fs/ocfs2/Kconfig" 4069050eeeSTomas Szepesource "fs/btrfs/Kconfig" 4141f4db0fSRyusuke Konishisource "fs/nilfs2/Kconfig" 42d7196c5aSJaegeuk Kimsource "fs/f2fs/Kconfig" 438dcc1a9dSDamien Le Moalsource "fs/zonefs/Kconfig" 4469050eeeSTomas Szepe 456cd176a5SMatthew Wilcoxconfig FS_DAX 466cd176a5SMatthew Wilcox bool "Direct Access (DAX) support" 476cd176a5SMatthew Wilcox depends on MMU 48d92576f1SMatthew Wilcox depends on !(ARM || MIPS || SPARC) 49e7638488SDan Williams select DEV_PAGEMAP_OPS if (ZONE_DEVICE && !FS_DAX_LIMITED) 506affb9d7SRoss Zwisler select FS_IOMAP 51ef510424SDan Williams select DAX 526cd176a5SMatthew Wilcox help 536cd176a5SMatthew Wilcox Direct Access (DAX) can be used on memory-backed block devices. 546cd176a5SMatthew Wilcox If the block device supports DAX and the filesystem supports DAX, 556cd176a5SMatthew Wilcox then you can avoid using the pagecache to buffer I/Os. Turning 566cd176a5SMatthew Wilcox on this option will compile in support for DAX; you will need to 576cd176a5SMatthew Wilcox mount the filesystem using the -o dax option. 586cd176a5SMatthew Wilcox 596cd176a5SMatthew Wilcox If you do not have a block device that is capable of using this, 606cd176a5SMatthew Wilcox or if unsure, say N. Saying Y will increase the size of the kernel 616cd176a5SMatthew Wilcox by about 5kB. 626cd176a5SMatthew Wilcox 63ee82c9edSDan Williamsconfig FS_DAX_PMD 64ee82c9edSDan Williams bool 65ee82c9edSDan Williams default FS_DAX 66ee82c9edSDan Williams depends on FS_DAX 67c046c321SDan Williams depends on ZONE_DEVICE 68c046c321SDan Williams depends on TRANSPARENT_HUGEPAGE 69ee82c9edSDan Williams 70569d0365SDan Williams# Selected by DAX drivers that do not expect filesystem DAX to support 71569d0365SDan Williams# get_user_pages() of DAX mappings. I.e. "limited" indicates no support 72569d0365SDan Williams# for fork() of processes with MAP_SHARED mappings or support for 73569d0365SDan Williams# direct-I/O to a DAX mapping. 74569d0365SDan Williamsconfig FS_DAX_LIMITED 75569d0365SDan Williams bool 76569d0365SDan Williams 7769050eeeSTomas Szepeendif # BLOCK 7869050eeeSTomas Szepe 7916ebe911SRandy Dunlap# Posix ACL utility routines 8016ebe911SRandy Dunlap# 8116ebe911SRandy Dunlap# Note: Posix ACLs can be implemented without these helpers. Never use 8216ebe911SRandy Dunlap# this symbol for ifdefs in core code. 8316ebe911SRandy Dunlap# 8416ebe911SRandy Dunlapconfig FS_POSIX_ACL 8516ebe911SRandy Dunlap def_bool n 8616ebe911SRandy Dunlap 874199ca77SRandy Dunlapconfig EXPORTFS 8879fead47SJonas Gorski tristate 894199ca77SRandy Dunlap 9015d66ac2SBenjamin Coddingtonconfig EXPORTFS_BLOCK_OPS 9115d66ac2SBenjamin Coddington bool "Enable filesystem export operations for block IO" 9215d66ac2SBenjamin Coddington help 9315d66ac2SBenjamin Coddington This option enables the export operations for a filesystem to support 9415d66ac2SBenjamin Coddington external block IO. 9515d66ac2SBenjamin Coddington 96bfcd17a6SThomas Petazzoniconfig FILE_LOCKING 976a108a14SDavid Rientjes bool "Enable POSIX file locking API" if EXPERT 98bfcd17a6SThomas Petazzoni default y 99bfcd17a6SThomas Petazzoni help 100bfcd17a6SThomas Petazzoni This option enables standard file locking support, required 101bfcd17a6SThomas Petazzoni for filesystems like NFS and for the flock() system 102bfcd17a6SThomas Petazzoni call. Disabling this option saves about 11k. 103bfcd17a6SThomas Petazzoni 1049e8925b6SJeff Laytonconfig MANDATORY_FILE_LOCKING 1059e8925b6SJeff Layton bool "Enable Mandatory file locking" 1069e8925b6SJeff Layton depends on FILE_LOCKING 1079e8925b6SJeff Layton default y 1089e8925b6SJeff Layton help 1099e8925b6SJeff Layton This option enables files appropriately marked files on appropriely 1109e8925b6SJeff Layton mounted filesystems to support mandatory locking. 1119e8925b6SJeff Layton 1129e8925b6SJeff Layton To the best of my knowledge this is dead code that no one cares about. 1139e8925b6SJeff Layton 1140b81d077SJaegeuk Kimsource "fs/crypto/Kconfig" 1150b81d077SJaegeuk Kim 116671e67b4SEric Biggerssource "fs/verity/Kconfig" 117671e67b4SEric Biggers 118272eb014SEric Parissource "fs/notify/Kconfig" 1192d9048e2SAmy Griffis 120884d179dSJan Karasource "fs/quota/Kconfig" 1211da177e4SLinus Torvalds 1222a3ae0a1SIan Kentsource "fs/autofs/Kconfig" 1233ef7784eSAlexey Dobriyansource "fs/fuse/Kconfig" 124e9be9d5eSMiklos Szeredisource "fs/overlayfs/Kconfig" 12504578f17SMiklos Szeredi 12606b3db1bSDavid Howellsmenu "Caches" 12706b3db1bSDavid Howells 1283d3c9504SDavid Howellssource "fs/netfs/Kconfig" 12906b3db1bSDavid Howellssource "fs/fscache/Kconfig" 1309ae326a6SDavid Howellssource "fs/cachefiles/Kconfig" 13106b3db1bSDavid Howells 13206b3db1bSDavid Howellsendmenu 13306b3db1bSDavid Howells 1349361401eSDavid Howellsif BLOCK 1351da177e4SLinus Torvaldsmenu "CD-ROM/DVD Filesystems" 1361da177e4SLinus Torvalds 137ddfaccd9SAlexey Dobriyansource "fs/isofs/Kconfig" 138ddfaccd9SAlexey Dobriyansource "fs/udf/Kconfig" 1391da177e4SLinus Torvalds 1401da177e4SLinus Torvaldsendmenu 14125fad945SRandy Dunlapendif # BLOCK 1421da177e4SLinus Torvalds 1439361401eSDavid Howellsif BLOCK 144b9d1e2e6SNamjae Jeonmenu "DOS/FAT/EXFAT/NT Filesystems" 1451da177e4SLinus Torvalds 1461c6ace01SAlexey Dobriyansource "fs/fat/Kconfig" 147b9d1e2e6SNamjae Jeonsource "fs/exfat/Kconfig" 1489d73ac9eSAlexey Dobriyansource "fs/ntfs/Kconfig" 149*6e5be40dSKonstantin Komarovsource "fs/ntfs3/Kconfig" 1501da177e4SLinus Torvalds 1511da177e4SLinus Torvaldsendmenu 15225fad945SRandy Dunlapendif # BLOCK 1531da177e4SLinus Torvalds 1541da177e4SLinus Torvaldsmenu "Pseudo filesystems" 1551da177e4SLinus Torvalds 1566eedf8d3SAlexey Dobriyansource "fs/proc/Kconfig" 157ba341d55STejun Heosource "fs/kernfs/Kconfig" 1585f3a211aSAlexey Dobriyansource "fs/sysfs/Kconfig" 1591da177e4SLinus Torvalds 1601da177e4SLinus Torvaldsconfig TMPFS 161f5fc870dSRobert P. J. Day bool "Tmpfs virtual memory file system support (former shm fs)" 1623f96b79aSHugh Dickins depends on SHMEM 1631da177e4SLinus Torvalds help 1641da177e4SLinus Torvalds Tmpfs is a file system which keeps all files in virtual memory. 1651da177e4SLinus Torvalds 1661da177e4SLinus Torvalds Everything in tmpfs is temporary in the sense that no files will be 1671da177e4SLinus Torvalds created on your hard drive. The files live in memory and swap 1681da177e4SLinus Torvalds space. If you unmount a tmpfs instance, everything stored therein is 1691da177e4SLinus Torvalds lost. 1701da177e4SLinus Torvalds 1710c1bc6b8SMauro Carvalho Chehab See <file:Documentation/filesystems/tmpfs.rst> for details. 1721da177e4SLinus Torvalds 1734db70f73SEric Parisconfig TMPFS_POSIX_ACL 1744db70f73SEric Paris bool "Tmpfs POSIX Access Control Lists" 1754db70f73SEric Paris depends on TMPFS 1764db70f73SEric Paris select TMPFS_XATTR 177feda821eSChristoph Hellwig select FS_POSIX_ACL 1784db70f73SEric Paris help 179206506ccSRobert P. J. Day POSIX Access Control Lists (ACLs) support additional access rights 180206506ccSRobert P. J. Day for users and groups beyond the standard owner/group/world scheme, 181206506ccSRobert P. J. Day and this option selects support for ACLs specifically for tmpfs 182206506ccSRobert P. J. Day filesystems. 183206506ccSRobert P. J. Day 184206506ccSRobert P. J. Day If you've selected TMPFS, it's possible that you'll also need 185206506ccSRobert P. J. Day this option as there are a number of Linux distros that require 186206506ccSRobert P. J. Day POSIX ACL support under /dev for certain features to work properly. 187206506ccSRobert P. J. Day For example, some distros need this feature for ALSA-related /dev 188206506ccSRobert P. J. Day files for sound to work properly. In short, if you're not sure, 189206506ccSRobert P. J. Day say Y. 1904db70f73SEric Paris 191b09e0fa4SEric Parisconfig TMPFS_XATTR 192b09e0fa4SEric Paris bool "Tmpfs extended attributes" 193b09e0fa4SEric Paris depends on TMPFS 194b09e0fa4SEric Paris default n 195b09e0fa4SEric Paris help 196b09e0fa4SEric Paris Extended attributes are name:value pairs associated with inodes by 19791581e4cSAdam Borowski the kernel or by users (see the attr(5) manual page for details). 198b09e0fa4SEric Paris 199b09e0fa4SEric Paris Currently this enables support for the trusted.* and 200b09e0fa4SEric Paris security.* namespaces. 201b09e0fa4SEric Paris 202b09e0fa4SEric Paris You need this for POSIX ACL support on tmpfs. 203b09e0fa4SEric Paris 2044db70f73SEric Paris If unsure, say N. 20539f0247dSAndreas Gruenbacher 206ea3271f7SChris Downconfig TMPFS_INODE64 207ea3271f7SChris Down bool "Use 64-bit ino_t by default in tmpfs" 208d0ed78e1SHeiko Carstens depends on TMPFS && 64BIT 209ea3271f7SChris Down default n 210ea3271f7SChris Down help 211ea3271f7SChris Down tmpfs has historically used only inode numbers as wide as an unsigned 212ea3271f7SChris Down int. In some cases this can cause wraparound, potentially resulting 213ea3271f7SChris Down in multiple files with the same inode number on a single device. This 214ea3271f7SChris Down option makes tmpfs use the full width of ino_t by default, without 215ea3271f7SChris Down needing to specify the inode64 option when mounting. 216ea3271f7SChris Down 217ea3271f7SChris Down But if a long-lived tmpfs is to be accessed by 32-bit applications so 218ea3271f7SChris Down ancient that opening a file larger than 2GiB fails with EINVAL, then 219ea3271f7SChris Down the INODE64 config option and inode64 mount option risk operations 220ea3271f7SChris Down failing with EOVERFLOW once 33-bit inode numbers are reached. 221ea3271f7SChris Down 222ea3271f7SChris Down To override this configured default, use the inode32 or inode64 223ea3271f7SChris Down option when mounting. 224ea3271f7SChris Down 225ea3271f7SChris Down If unsure, say N. 226ea3271f7SChris Down 227855f9a8eSAnshuman Khandualconfig ARCH_SUPPORTS_HUGETLBFS 228855f9a8eSAnshuman Khandual def_bool n 229855f9a8eSAnshuman Khandual 2301da177e4SLinus Torvaldsconfig HUGETLBFS 2311da177e4SLinus Torvalds bool "HugeTLB file system support" 2325a1eb5c4SBenjamin Herrenschmidt depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \ 233855f9a8eSAnshuman Khandual ARCH_SUPPORTS_HUGETLBFS || BROKEN 234dda27d1aSArthur Othieno help 235dda27d1aSArthur Othieno hugetlbfs is a filesystem backing for HugeTLB pages, based on 236dda27d1aSArthur Othieno ramfs. For architectures that support it, say Y here and read 2371ad1335dSMike Rapoport <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details. 238dda27d1aSArthur Othieno 239dda27d1aSArthur Othieno If unsure, say N. 2401da177e4SLinus Torvalds 2411da177e4SLinus Torvaldsconfig HUGETLB_PAGE 2421da177e4SLinus Torvalds def_bool HUGETLBFS 2431da177e4SLinus Torvalds 2446be24bedSMuchun Songconfig HUGETLB_PAGE_FREE_VMEMMAP 2456be24bedSMuchun Song def_bool HUGETLB_PAGE 2466be24bedSMuchun Song depends on X86_64 2476be24bedSMuchun Song depends on SPARSEMEM_VMEMMAP 2486be24bedSMuchun Song 249e6d41f12SMuchun Songconfig HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON 250e6d41f12SMuchun Song bool "Default freeing vmemmap pages of HugeTLB to on" 251e6d41f12SMuchun Song default n 252e6d41f12SMuchun Song depends on HUGETLB_PAGE_FREE_VMEMMAP 253e6d41f12SMuchun Song help 254e6d41f12SMuchun Song When using HUGETLB_PAGE_FREE_VMEMMAP, the freeing unused vmemmap 255e6d41f12SMuchun Song pages associated with each HugeTLB page is default off. Say Y here 256e6d41f12SMuchun Song to enable freeing vmemmap pages of HugeTLB by default. It can then 257e6d41f12SMuchun Song be disabled on the command line via hugetlb_free_vmemmap=off. 258e6d41f12SMuchun Song 2595d752600SMike Kravetzconfig MEMFD_CREATE 2605d752600SMike Kravetz def_bool TMPFS || HUGETLBFS 2615d752600SMike Kravetz 262461a7184SYisheng Xieconfig ARCH_HAS_GIGANTIC_PAGE 263461a7184SYisheng Xie bool 264461a7184SYisheng Xie 2654591dabeSAlexey Dobriyansource "fs/configfs/Kconfig" 26662c204ddSLeif Lindholmsource "fs/efivarfs/Kconfig" 2677063fbf2SJoel Becker 2681da177e4SLinus Torvaldsendmenu 2691da177e4SLinus Torvalds 27067ec7d3aSRandy Dunlapmenuconfig MISC_FILESYSTEMS 27167ec7d3aSRandy Dunlap bool "Miscellaneous filesystems" 27267ec7d3aSRandy Dunlap default y 273a7f7f624SMasahiro Yamada help 27467ec7d3aSRandy Dunlap Say Y here to get to see options for various miscellaneous 27567ec7d3aSRandy Dunlap filesystems, such as filesystems that came from other 27667ec7d3aSRandy Dunlap operating systems. 27767ec7d3aSRandy Dunlap 27867ec7d3aSRandy Dunlap This option alone does not add any kernel code. 27967ec7d3aSRandy Dunlap 28067ec7d3aSRandy Dunlap If you say N, all options in this submenu will be skipped and 28167ec7d3aSRandy Dunlap disabled; if unsure, say Y here. 28267ec7d3aSRandy Dunlap 28367ec7d3aSRandy Dunlapif MISC_FILESYSTEMS 2841da177e4SLinus Torvalds 28507f01962SMike Marshallsource "fs/orangefs/Kconfig" 286bc2de2aeSAlexey Dobriyansource "fs/adfs/Kconfig" 28710951bf0SAlexey Dobriyansource "fs/affs/Kconfig" 288295c896cSAlexey Dobriyansource "fs/ecryptfs/Kconfig" 289b08bac1fSAlexey Dobriyansource "fs/hfs/Kconfig" 290b08bac1fSAlexey Dobriyansource "fs/hfsplus/Kconfig" 2910b09eb32SAlexey Dobriyansource "fs/befs/Kconfig" 2920ff42384SAlexey Dobriyansource "fs/bfs/Kconfig" 293571f0a0bSAlexey Dobriyansource "fs/efs/Kconfig" 29431db6e9eSAlexey Dobriyansource "fs/jffs2/Kconfig" 2950d7eff87SArtem Bityutskiy# UBIFS File system configuration 2960d7eff87SArtem Bityutskiysource "fs/ubifs/Kconfig" 2972a22783bSAlexey Dobriyansource "fs/cramfs/Kconfig" 29822635ec9SAlexey Dobriyansource "fs/squashfs/Kconfig" 29922135169SAlexey Dobriyansource "fs/freevxfs/Kconfig" 3008b1cd7d3SAlexey Dobriyansource "fs/minix/Kconfig" 301da55e6f9SAlexey Dobriyansource "fs/omfs/Kconfig" 302928ea192SAlexey Dobriyansource "fs/hpfs/Kconfig" 3034c741583SAlexey Dobriyansource "fs/qnx4/Kconfig" 3045d026c72SKai Bankettsource "fs/qnx6/Kconfig" 30541810246SAlexey Dobriyansource "fs/romfs/Kconfig" 306ca01d6ddSTony Lucksource "fs/pstore/Kconfig" 3078af915baSAlexey Dobriyansource "fs/sysv/Kconfig" 308a276a52fSAlexey Dobriyansource "fs/ufs/Kconfig" 30947e4937aSGao Xiangsource "fs/erofs/Kconfig" 3100fd16957SHans de Goedesource "fs/vboxsf/Kconfig" 3110c4fb877SRyusuke Konishi 31267ec7d3aSRandy Dunlapendif # MISC_FILESYSTEMS 3131da177e4SLinus Torvalds 314ea0985adSJan Engelhardtmenuconfig NETWORK_FILESYSTEMS 315ea0985adSJan Engelhardt bool "Network File Systems" 316ea0985adSJan Engelhardt default y 3171da177e4SLinus Torvalds depends on NET 318a7f7f624SMasahiro Yamada help 319ea0985adSJan Engelhardt Say Y here to get to see options for network filesystems and 320ea0985adSJan Engelhardt filesystem-related networking code, such as NFS daemon and 321ea0985adSJan Engelhardt RPCSEC security modules. 3226fb1bc10SChuck Lever 323ea0985adSJan Engelhardt This option alone does not add any kernel code. 324ea0985adSJan Engelhardt 325ea0985adSJan Engelhardt If you say N, all options in this submenu will be skipped and 326ea0985adSJan Engelhardt disabled; if unsure, say Y here. 327ea0985adSJan Engelhardt 328ea0985adSJan Engelhardtif NETWORK_FILESYSTEMS 3291da177e4SLinus Torvalds 33097afe47aSAlexey Dobriyansource "fs/nfs/Kconfig" 331e2b329e2SAlexey Dobriyansource "fs/nfsd/Kconfig" 3321da177e4SLinus Torvalds 333f7790029SJeff Laytonconfig GRACE_PERIOD 334f7790029SJeff Layton tristate 335f7790029SJeff Layton 3361da177e4SLinus Torvaldsconfig LOCKD 3371da177e4SLinus Torvalds tristate 338dd4dc82dSRandy Dunlap depends on FILE_LOCKING 339f7790029SJeff Layton select GRACE_PERIOD 3401da177e4SLinus Torvalds 3411da177e4SLinus Torvaldsconfig LOCKD_V4 3421da177e4SLinus Torvalds bool 3431da177e4SLinus Torvalds depends on NFSD_V3 || NFS_V3 344dd4dc82dSRandy Dunlap depends on FILE_LOCKING 3451da177e4SLinus Torvalds default y 3461da177e4SLinus Torvalds 347a257cdd0SAndreas Gruenbacherconfig NFS_ACL_SUPPORT 348a257cdd0SAndreas Gruenbacher tristate 349a257cdd0SAndreas Gruenbacher select FS_POSIX_ACL 350a257cdd0SAndreas Gruenbacher 351a257cdd0SAndreas Gruenbacherconfig NFS_COMMON 352a257cdd0SAndreas Gruenbacher bool 353f7790029SJeff Layton depends on NFSD || NFS_FS || LOCKD 354a257cdd0SAndreas Gruenbacher default y 355a257cdd0SAndreas Gruenbacher 35602591f9fSDai Ngoconfig NFS_V4_2_SSC_HELPER 357d9092b4bSDai Ngo bool 358d9092b4bSDai Ngo default y if NFS_V4_2 35902591f9fSDai Ngo 3609098c24fSAlexey Dobriyansource "net/sunrpc/Kconfig" 3619030aaf9SSage Weilsource "fs/ceph/Kconfig" 362bb26b963SAlexey Dobriyansource "fs/cifs/Kconfig" 36333a1a6feSAlexey Dobriyansource "fs/coda/Kconfig" 364b2480c7fSAlexey Dobriyansource "fs/afs/Kconfig" 3650fcb4408SAlexey Dobriyansource "fs/9p/Kconfig" 36693fa58cbSEric Van Hensbergen 367ea0985adSJan Engelhardtendif # NETWORK_FILESYSTEMS 3681da177e4SLinus Torvalds 3691da177e4SLinus Torvaldssource "fs/nls/Kconfig" 370e7fd4179SDavid Teiglandsource "fs/dlm/Kconfig" 371955405d1SGabriel Krisman Bertazisource "fs/unicode/Kconfig" 3721da177e4SLinus Torvalds 373771b53d0SJens Axboeconfig IO_WQ 374771b53d0SJens Axboe bool 375771b53d0SJens Axboe 3761da177e4SLinus Torvaldsendmenu 377