xref: /linux/fs/Kconfig (revision 671e67b47e9fffd12c8f69eda853a202cb5b3fc5)
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"
4369050eeeSTomas Szepe
446cd176a5SMatthew Wilcoxconfig FS_DAX
456cd176a5SMatthew Wilcox	bool "Direct Access (DAX) support"
466cd176a5SMatthew Wilcox	depends on MMU
47d92576f1SMatthew Wilcox	depends on !(ARM || MIPS || SPARC)
48e7638488SDan Williams	select DEV_PAGEMAP_OPS if (ZONE_DEVICE && !FS_DAX_LIMITED)
496affb9d7SRoss Zwisler	select FS_IOMAP
50ef510424SDan Williams	select DAX
516cd176a5SMatthew Wilcox	help
526cd176a5SMatthew Wilcox	  Direct Access (DAX) can be used on memory-backed block devices.
536cd176a5SMatthew Wilcox	  If the block device supports DAX and the filesystem supports DAX,
546cd176a5SMatthew Wilcox	  then you can avoid using the pagecache to buffer I/Os.  Turning
556cd176a5SMatthew Wilcox	  on this option will compile in support for DAX; you will need to
566cd176a5SMatthew Wilcox	  mount the filesystem using the -o dax option.
576cd176a5SMatthew Wilcox
586cd176a5SMatthew Wilcox	  If you do not have a block device that is capable of using this,
596cd176a5SMatthew Wilcox	  or if unsure, say N.  Saying Y will increase the size of the kernel
606cd176a5SMatthew Wilcox	  by about 5kB.
616cd176a5SMatthew Wilcox
62ee82c9edSDan Williamsconfig FS_DAX_PMD
63ee82c9edSDan Williams	bool
64ee82c9edSDan Williams	default FS_DAX
65ee82c9edSDan Williams	depends on FS_DAX
66c046c321SDan Williams	depends on ZONE_DEVICE
67c046c321SDan Williams	depends on TRANSPARENT_HUGEPAGE
68ee82c9edSDan Williams
69569d0365SDan Williams# Selected by DAX drivers that do not expect filesystem DAX to support
70569d0365SDan Williams# get_user_pages() of DAX mappings. I.e. "limited" indicates no support
71569d0365SDan Williams# for fork() of processes with MAP_SHARED mappings or support for
72569d0365SDan Williams# direct-I/O to a DAX mapping.
73569d0365SDan Williamsconfig FS_DAX_LIMITED
74569d0365SDan Williams	bool
75569d0365SDan Williams
7669050eeeSTomas Szepeendif # BLOCK
7769050eeeSTomas Szepe
7816ebe911SRandy Dunlap# Posix ACL utility routines
7916ebe911SRandy Dunlap#
8016ebe911SRandy Dunlap# Note: Posix ACLs can be implemented without these helpers.  Never use
8116ebe911SRandy Dunlap# this symbol for ifdefs in core code.
8216ebe911SRandy Dunlap#
8316ebe911SRandy Dunlapconfig FS_POSIX_ACL
8416ebe911SRandy Dunlap	def_bool n
8516ebe911SRandy Dunlap
864199ca77SRandy Dunlapconfig EXPORTFS
8779fead47SJonas Gorski	tristate
884199ca77SRandy Dunlap
8915d66ac2SBenjamin Coddingtonconfig EXPORTFS_BLOCK_OPS
9015d66ac2SBenjamin Coddington	bool "Enable filesystem export operations for block IO"
9115d66ac2SBenjamin Coddington	help
9215d66ac2SBenjamin Coddington	  This option enables the export operations for a filesystem to support
9315d66ac2SBenjamin Coddington	  external block IO.
9415d66ac2SBenjamin Coddington
95bfcd17a6SThomas Petazzoniconfig FILE_LOCKING
966a108a14SDavid Rientjes	bool "Enable POSIX file locking API" if EXPERT
97bfcd17a6SThomas Petazzoni	default y
98bfcd17a6SThomas Petazzoni	help
99bfcd17a6SThomas Petazzoni	  This option enables standard file locking support, required
100bfcd17a6SThomas Petazzoni          for filesystems like NFS and for the flock() system
101bfcd17a6SThomas Petazzoni          call. Disabling this option saves about 11k.
102bfcd17a6SThomas Petazzoni
1039e8925b6SJeff Laytonconfig MANDATORY_FILE_LOCKING
1049e8925b6SJeff Layton	bool "Enable Mandatory file locking"
1059e8925b6SJeff Layton	depends on FILE_LOCKING
1069e8925b6SJeff Layton	default y
1079e8925b6SJeff Layton	help
1089e8925b6SJeff Layton	  This option enables files appropriately marked files on appropriely
1099e8925b6SJeff Layton	  mounted filesystems to support mandatory locking.
1109e8925b6SJeff Layton
1119e8925b6SJeff Layton	  To the best of my knowledge this is dead code that no one cares about.
1129e8925b6SJeff Layton
1130b81d077SJaegeuk Kimsource "fs/crypto/Kconfig"
1140b81d077SJaegeuk Kim
115*671e67b4SEric Biggerssource "fs/verity/Kconfig"
116*671e67b4SEric Biggers
117272eb014SEric Parissource "fs/notify/Kconfig"
1182d9048e2SAmy Griffis
119884d179dSJan Karasource "fs/quota/Kconfig"
1201da177e4SLinus Torvalds
1212a3ae0a1SIan Kentsource "fs/autofs/Kconfig"
1223ef7784eSAlexey Dobriyansource "fs/fuse/Kconfig"
123e9be9d5eSMiklos Szeredisource "fs/overlayfs/Kconfig"
12404578f17SMiklos Szeredi
12506b3db1bSDavid Howellsmenu "Caches"
12606b3db1bSDavid Howells
12706b3db1bSDavid Howellssource "fs/fscache/Kconfig"
1289ae326a6SDavid Howellssource "fs/cachefiles/Kconfig"
12906b3db1bSDavid Howells
13006b3db1bSDavid Howellsendmenu
13106b3db1bSDavid Howells
1329361401eSDavid Howellsif BLOCK
1331da177e4SLinus Torvaldsmenu "CD-ROM/DVD Filesystems"
1341da177e4SLinus Torvalds
135ddfaccd9SAlexey Dobriyansource "fs/isofs/Kconfig"
136ddfaccd9SAlexey Dobriyansource "fs/udf/Kconfig"
1371da177e4SLinus Torvalds
1381da177e4SLinus Torvaldsendmenu
13925fad945SRandy Dunlapendif # BLOCK
1401da177e4SLinus Torvalds
1419361401eSDavid Howellsif BLOCK
1421da177e4SLinus Torvaldsmenu "DOS/FAT/NT Filesystems"
1431da177e4SLinus Torvalds
1441c6ace01SAlexey Dobriyansource "fs/fat/Kconfig"
1459d73ac9eSAlexey Dobriyansource "fs/ntfs/Kconfig"
1461da177e4SLinus Torvalds
1471da177e4SLinus Torvaldsendmenu
14825fad945SRandy Dunlapendif # BLOCK
1491da177e4SLinus Torvalds
1501da177e4SLinus Torvaldsmenu "Pseudo filesystems"
1511da177e4SLinus Torvalds
1526eedf8d3SAlexey Dobriyansource "fs/proc/Kconfig"
153ba341d55STejun Heosource "fs/kernfs/Kconfig"
1545f3a211aSAlexey Dobriyansource "fs/sysfs/Kconfig"
1551da177e4SLinus Torvalds
1561da177e4SLinus Torvaldsconfig TMPFS
157f5fc870dSRobert P. J. Day	bool "Tmpfs virtual memory file system support (former shm fs)"
1583f96b79aSHugh Dickins	depends on SHMEM
1591da177e4SLinus Torvalds	help
1601da177e4SLinus Torvalds	  Tmpfs is a file system which keeps all files in virtual memory.
1611da177e4SLinus Torvalds
1621da177e4SLinus Torvalds	  Everything in tmpfs is temporary in the sense that no files will be
1631da177e4SLinus Torvalds	  created on your hard drive. The files live in memory and swap
1641da177e4SLinus Torvalds	  space. If you unmount a tmpfs instance, everything stored therein is
1651da177e4SLinus Torvalds	  lost.
1661da177e4SLinus Torvalds
1671da177e4SLinus Torvalds	  See <file:Documentation/filesystems/tmpfs.txt> for details.
1681da177e4SLinus Torvalds
1694db70f73SEric Parisconfig TMPFS_POSIX_ACL
1704db70f73SEric Paris	bool "Tmpfs POSIX Access Control Lists"
1714db70f73SEric Paris	depends on TMPFS
1724db70f73SEric Paris	select TMPFS_XATTR
173feda821eSChristoph Hellwig	select FS_POSIX_ACL
1744db70f73SEric Paris	help
175206506ccSRobert P. J. Day	  POSIX Access Control Lists (ACLs) support additional access rights
176206506ccSRobert P. J. Day	  for users and groups beyond the standard owner/group/world scheme,
177206506ccSRobert P. J. Day	  and this option selects support for ACLs specifically for tmpfs
178206506ccSRobert P. J. Day	  filesystems.
179206506ccSRobert P. J. Day
180206506ccSRobert P. J. Day	  If you've selected TMPFS, it's possible that you'll also need
181206506ccSRobert P. J. Day	  this option as there are a number of Linux distros that require
182206506ccSRobert P. J. Day	  POSIX ACL support under /dev for certain features to work properly.
183206506ccSRobert P. J. Day	  For example, some distros need this feature for ALSA-related /dev
184206506ccSRobert P. J. Day	  files for sound to work properly.  In short, if you're not sure,
185206506ccSRobert P. J. Day	  say Y.
1864db70f73SEric Paris
187b09e0fa4SEric Parisconfig TMPFS_XATTR
188b09e0fa4SEric Paris	bool "Tmpfs extended attributes"
189b09e0fa4SEric Paris	depends on TMPFS
190b09e0fa4SEric Paris	default n
191b09e0fa4SEric Paris	help
192b09e0fa4SEric Paris	  Extended attributes are name:value pairs associated with inodes by
19391581e4cSAdam Borowski	  the kernel or by users (see the attr(5) manual page for details).
194b09e0fa4SEric Paris
195b09e0fa4SEric Paris	  Currently this enables support for the trusted.* and
196b09e0fa4SEric Paris	  security.* namespaces.
197b09e0fa4SEric Paris
198b09e0fa4SEric Paris	  You need this for POSIX ACL support on tmpfs.
199b09e0fa4SEric Paris
2004db70f73SEric Paris	  If unsure, say N.
20139f0247dSAndreas Gruenbacher
2021da177e4SLinus Torvaldsconfig HUGETLBFS
2031da177e4SLinus Torvalds	bool "HugeTLB file system support"
2045a1eb5c4SBenjamin Herrenschmidt	depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \
205ffb4a73dSPaul Mundt		   SYS_SUPPORTS_HUGETLBFS || BROKEN
206dda27d1aSArthur Othieno	help
207dda27d1aSArthur Othieno	  hugetlbfs is a filesystem backing for HugeTLB pages, based on
208dda27d1aSArthur Othieno	  ramfs. For architectures that support it, say Y here and read
2091ad1335dSMike Rapoport	  <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details.
210dda27d1aSArthur Othieno
211dda27d1aSArthur Othieno	  If unsure, say N.
2121da177e4SLinus Torvalds
2131da177e4SLinus Torvaldsconfig HUGETLB_PAGE
2141da177e4SLinus Torvalds	def_bool HUGETLBFS
2151da177e4SLinus Torvalds
2165d752600SMike Kravetzconfig MEMFD_CREATE
2175d752600SMike Kravetz	def_bool TMPFS || HUGETLBFS
2185d752600SMike Kravetz
219461a7184SYisheng Xieconfig ARCH_HAS_GIGANTIC_PAGE
220461a7184SYisheng Xie	bool
221461a7184SYisheng Xie
2224591dabeSAlexey Dobriyansource "fs/configfs/Kconfig"
22362c204ddSLeif Lindholmsource "fs/efivarfs/Kconfig"
2247063fbf2SJoel Becker
2251da177e4SLinus Torvaldsendmenu
2261da177e4SLinus Torvalds
22767ec7d3aSRandy Dunlapmenuconfig MISC_FILESYSTEMS
22867ec7d3aSRandy Dunlap	bool "Miscellaneous filesystems"
22967ec7d3aSRandy Dunlap	default y
23067ec7d3aSRandy Dunlap	---help---
23167ec7d3aSRandy Dunlap	  Say Y here to get to see options for various miscellaneous
23267ec7d3aSRandy Dunlap	  filesystems, such as filesystems that came from other
23367ec7d3aSRandy Dunlap	  operating systems.
23467ec7d3aSRandy Dunlap
23567ec7d3aSRandy Dunlap	  This option alone does not add any kernel code.
23667ec7d3aSRandy Dunlap
23767ec7d3aSRandy Dunlap	  If you say N, all options in this submenu will be skipped and
23867ec7d3aSRandy Dunlap	  disabled; if unsure, say Y here.
23967ec7d3aSRandy Dunlap
24067ec7d3aSRandy Dunlapif MISC_FILESYSTEMS
2411da177e4SLinus Torvalds
24207f01962SMike Marshallsource "fs/orangefs/Kconfig"
243bc2de2aeSAlexey Dobriyansource "fs/adfs/Kconfig"
24410951bf0SAlexey Dobriyansource "fs/affs/Kconfig"
245295c896cSAlexey Dobriyansource "fs/ecryptfs/Kconfig"
246b08bac1fSAlexey Dobriyansource "fs/hfs/Kconfig"
247b08bac1fSAlexey Dobriyansource "fs/hfsplus/Kconfig"
2480b09eb32SAlexey Dobriyansource "fs/befs/Kconfig"
2490ff42384SAlexey Dobriyansource "fs/bfs/Kconfig"
250571f0a0bSAlexey Dobriyansource "fs/efs/Kconfig"
25131db6e9eSAlexey Dobriyansource "fs/jffs2/Kconfig"
2520d7eff87SArtem Bityutskiy# UBIFS File system configuration
2530d7eff87SArtem Bityutskiysource "fs/ubifs/Kconfig"
2542a22783bSAlexey Dobriyansource "fs/cramfs/Kconfig"
25522635ec9SAlexey Dobriyansource "fs/squashfs/Kconfig"
25622135169SAlexey Dobriyansource "fs/freevxfs/Kconfig"
2578b1cd7d3SAlexey Dobriyansource "fs/minix/Kconfig"
258da55e6f9SAlexey Dobriyansource "fs/omfs/Kconfig"
259928ea192SAlexey Dobriyansource "fs/hpfs/Kconfig"
2604c741583SAlexey Dobriyansource "fs/qnx4/Kconfig"
2615d026c72SKai Bankettsource "fs/qnx6/Kconfig"
26241810246SAlexey Dobriyansource "fs/romfs/Kconfig"
263ca01d6ddSTony Lucksource "fs/pstore/Kconfig"
2648af915baSAlexey Dobriyansource "fs/sysv/Kconfig"
265a276a52fSAlexey Dobriyansource "fs/ufs/Kconfig"
2660c4fb877SRyusuke Konishi
26767ec7d3aSRandy Dunlapendif # MISC_FILESYSTEMS
2681da177e4SLinus Torvalds
269ea0985adSJan Engelhardtmenuconfig NETWORK_FILESYSTEMS
270ea0985adSJan Engelhardt	bool "Network File Systems"
271ea0985adSJan Engelhardt	default y
2721da177e4SLinus Torvalds	depends on NET
273ea0985adSJan Engelhardt	---help---
274ea0985adSJan Engelhardt	  Say Y here to get to see options for network filesystems and
275ea0985adSJan Engelhardt	  filesystem-related networking code, such as NFS daemon and
276ea0985adSJan Engelhardt	  RPCSEC security modules.
2776fb1bc10SChuck Lever
278ea0985adSJan Engelhardt	  This option alone does not add any kernel code.
279ea0985adSJan Engelhardt
280ea0985adSJan Engelhardt	  If you say N, all options in this submenu will be skipped and
281ea0985adSJan Engelhardt	  disabled; if unsure, say Y here.
282ea0985adSJan Engelhardt
283ea0985adSJan Engelhardtif NETWORK_FILESYSTEMS
2841da177e4SLinus Torvalds
28597afe47aSAlexey Dobriyansource "fs/nfs/Kconfig"
286e2b329e2SAlexey Dobriyansource "fs/nfsd/Kconfig"
2871da177e4SLinus Torvalds
288f7790029SJeff Laytonconfig GRACE_PERIOD
289f7790029SJeff Layton	tristate
290f7790029SJeff Layton
2911da177e4SLinus Torvaldsconfig LOCKD
2921da177e4SLinus Torvalds	tristate
293dd4dc82dSRandy Dunlap	depends on FILE_LOCKING
294f7790029SJeff Layton	select GRACE_PERIOD
2951da177e4SLinus Torvalds
2961da177e4SLinus Torvaldsconfig LOCKD_V4
2971da177e4SLinus Torvalds	bool
2981da177e4SLinus Torvalds	depends on NFSD_V3 || NFS_V3
299dd4dc82dSRandy Dunlap	depends on FILE_LOCKING
3001da177e4SLinus Torvalds	default y
3011da177e4SLinus Torvalds
302a257cdd0SAndreas Gruenbacherconfig NFS_ACL_SUPPORT
303a257cdd0SAndreas Gruenbacher	tristate
304a257cdd0SAndreas Gruenbacher	select FS_POSIX_ACL
305a257cdd0SAndreas Gruenbacher
306a257cdd0SAndreas Gruenbacherconfig NFS_COMMON
307a257cdd0SAndreas Gruenbacher	bool
308f7790029SJeff Layton	depends on NFSD || NFS_FS || LOCKD
309a257cdd0SAndreas Gruenbacher	default y
310a257cdd0SAndreas Gruenbacher
3119098c24fSAlexey Dobriyansource "net/sunrpc/Kconfig"
3129030aaf9SSage Weilsource "fs/ceph/Kconfig"
313bb26b963SAlexey Dobriyansource "fs/cifs/Kconfig"
31433a1a6feSAlexey Dobriyansource "fs/coda/Kconfig"
315b2480c7fSAlexey Dobriyansource "fs/afs/Kconfig"
3160fcb4408SAlexey Dobriyansource "fs/9p/Kconfig"
31793fa58cbSEric Van Hensbergen
318ea0985adSJan Engelhardtendif # NETWORK_FILESYSTEMS
3191da177e4SLinus Torvalds
3201da177e4SLinus Torvaldssource "fs/nls/Kconfig"
321e7fd4179SDavid Teiglandsource "fs/dlm/Kconfig"
322955405d1SGabriel Krisman Bertazisource "fs/unicode/Kconfig"
3231da177e4SLinus Torvalds
3241da177e4SLinus Torvaldsendmenu
325