xref: /linux/fs/Kconfig (revision bb9c14ad267d25dd77ceccbcfd69804bdb7240f5)
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
1040b81d077SJaegeuk Kimsource "fs/crypto/Kconfig"
1050b81d077SJaegeuk Kim
106671e67b4SEric Biggerssource "fs/verity/Kconfig"
107671e67b4SEric Biggers
108272eb014SEric Parissource "fs/notify/Kconfig"
1092d9048e2SAmy Griffis
110884d179dSJan Karasource "fs/quota/Kconfig"
1111da177e4SLinus Torvalds
1122a3ae0a1SIan Kentsource "fs/autofs/Kconfig"
1133ef7784eSAlexey Dobriyansource "fs/fuse/Kconfig"
114e9be9d5eSMiklos Szeredisource "fs/overlayfs/Kconfig"
11504578f17SMiklos Szeredi
11606b3db1bSDavid Howellsmenu "Caches"
11706b3db1bSDavid Howells
1183d3c9504SDavid Howellssource "fs/netfs/Kconfig"
11906b3db1bSDavid Howellssource "fs/fscache/Kconfig"
1209ae326a6SDavid Howellssource "fs/cachefiles/Kconfig"
12106b3db1bSDavid Howells
12206b3db1bSDavid Howellsendmenu
12306b3db1bSDavid Howells
1249361401eSDavid Howellsif BLOCK
1251da177e4SLinus Torvaldsmenu "CD-ROM/DVD Filesystems"
1261da177e4SLinus Torvalds
127ddfaccd9SAlexey Dobriyansource "fs/isofs/Kconfig"
128ddfaccd9SAlexey Dobriyansource "fs/udf/Kconfig"
1291da177e4SLinus Torvalds
1301da177e4SLinus Torvaldsendmenu
13125fad945SRandy Dunlapendif # BLOCK
1321da177e4SLinus Torvalds
1339361401eSDavid Howellsif BLOCK
134b9d1e2e6SNamjae Jeonmenu "DOS/FAT/EXFAT/NT Filesystems"
1351da177e4SLinus Torvalds
1361c6ace01SAlexey Dobriyansource "fs/fat/Kconfig"
137b9d1e2e6SNamjae Jeonsource "fs/exfat/Kconfig"
1389d73ac9eSAlexey Dobriyansource "fs/ntfs/Kconfig"
1391da177e4SLinus Torvalds
1401da177e4SLinus Torvaldsendmenu
14125fad945SRandy Dunlapendif # BLOCK
1421da177e4SLinus Torvalds
1431da177e4SLinus Torvaldsmenu "Pseudo filesystems"
1441da177e4SLinus Torvalds
1456eedf8d3SAlexey Dobriyansource "fs/proc/Kconfig"
146ba341d55STejun Heosource "fs/kernfs/Kconfig"
1475f3a211aSAlexey Dobriyansource "fs/sysfs/Kconfig"
1481da177e4SLinus Torvalds
1491da177e4SLinus Torvaldsconfig TMPFS
150f5fc870dSRobert P. J. Day	bool "Tmpfs virtual memory file system support (former shm fs)"
1513f96b79aSHugh Dickins	depends on SHMEM
1521da177e4SLinus Torvalds	help
1531da177e4SLinus Torvalds	  Tmpfs is a file system which keeps all files in virtual memory.
1541da177e4SLinus Torvalds
1551da177e4SLinus Torvalds	  Everything in tmpfs is temporary in the sense that no files will be
1561da177e4SLinus Torvalds	  created on your hard drive. The files live in memory and swap
1571da177e4SLinus Torvalds	  space. If you unmount a tmpfs instance, everything stored therein is
1581da177e4SLinus Torvalds	  lost.
1591da177e4SLinus Torvalds
1600c1bc6b8SMauro Carvalho Chehab	  See <file:Documentation/filesystems/tmpfs.rst> for details.
1611da177e4SLinus Torvalds
1624db70f73SEric Parisconfig TMPFS_POSIX_ACL
1634db70f73SEric Paris	bool "Tmpfs POSIX Access Control Lists"
1644db70f73SEric Paris	depends on TMPFS
1654db70f73SEric Paris	select TMPFS_XATTR
166feda821eSChristoph Hellwig	select FS_POSIX_ACL
1674db70f73SEric Paris	help
168206506ccSRobert P. J. Day	  POSIX Access Control Lists (ACLs) support additional access rights
169206506ccSRobert P. J. Day	  for users and groups beyond the standard owner/group/world scheme,
170206506ccSRobert P. J. Day	  and this option selects support for ACLs specifically for tmpfs
171206506ccSRobert P. J. Day	  filesystems.
172206506ccSRobert P. J. Day
173206506ccSRobert P. J. Day	  If you've selected TMPFS, it's possible that you'll also need
174206506ccSRobert P. J. Day	  this option as there are a number of Linux distros that require
175206506ccSRobert P. J. Day	  POSIX ACL support under /dev for certain features to work properly.
176206506ccSRobert P. J. Day	  For example, some distros need this feature for ALSA-related /dev
177206506ccSRobert P. J. Day	  files for sound to work properly.  In short, if you're not sure,
178206506ccSRobert P. J. Day	  say Y.
1794db70f73SEric Paris
180b09e0fa4SEric Parisconfig TMPFS_XATTR
181b09e0fa4SEric Paris	bool "Tmpfs extended attributes"
182b09e0fa4SEric Paris	depends on TMPFS
183b09e0fa4SEric Paris	default n
184b09e0fa4SEric Paris	help
185b09e0fa4SEric Paris	  Extended attributes are name:value pairs associated with inodes by
18691581e4cSAdam Borowski	  the kernel or by users (see the attr(5) manual page for details).
187b09e0fa4SEric Paris
188b09e0fa4SEric Paris	  Currently this enables support for the trusted.* and
189b09e0fa4SEric Paris	  security.* namespaces.
190b09e0fa4SEric Paris
191b09e0fa4SEric Paris	  You need this for POSIX ACL support on tmpfs.
192b09e0fa4SEric Paris
1934db70f73SEric Paris	  If unsure, say N.
19439f0247dSAndreas Gruenbacher
195ea3271f7SChris Downconfig TMPFS_INODE64
196ea3271f7SChris Down	bool "Use 64-bit ino_t by default in tmpfs"
197d0ed78e1SHeiko Carstens	depends on TMPFS && 64BIT
198ea3271f7SChris Down	default n
199ea3271f7SChris Down	help
200ea3271f7SChris Down	  tmpfs has historically used only inode numbers as wide as an unsigned
201ea3271f7SChris Down	  int. In some cases this can cause wraparound, potentially resulting
202ea3271f7SChris Down	  in multiple files with the same inode number on a single device. This
203ea3271f7SChris Down	  option makes tmpfs use the full width of ino_t by default, without
204ea3271f7SChris Down	  needing to specify the inode64 option when mounting.
205ea3271f7SChris Down
206ea3271f7SChris Down	  But if a long-lived tmpfs is to be accessed by 32-bit applications so
207ea3271f7SChris Down	  ancient that opening a file larger than 2GiB fails with EINVAL, then
208ea3271f7SChris Down	  the INODE64 config option and inode64 mount option risk operations
209ea3271f7SChris Down	  failing with EOVERFLOW once 33-bit inode numbers are reached.
210ea3271f7SChris Down
211ea3271f7SChris Down	  To override this configured default, use the inode32 or inode64
212ea3271f7SChris Down	  option when mounting.
213ea3271f7SChris Down
214ea3271f7SChris Down	  If unsure, say N.
215ea3271f7SChris Down
216855f9a8eSAnshuman Khandualconfig ARCH_SUPPORTS_HUGETLBFS
217855f9a8eSAnshuman Khandual	def_bool n
218855f9a8eSAnshuman Khandual
2191da177e4SLinus Torvaldsconfig HUGETLBFS
2201da177e4SLinus Torvalds	bool "HugeTLB file system support"
221*bb9c14adSDavid Hildenbrand	depends on X86 || IA64 || SPARC64 || ARCH_SUPPORTS_HUGETLBFS || BROKEN
222dda27d1aSArthur Othieno	help
223dda27d1aSArthur Othieno	  hugetlbfs is a filesystem backing for HugeTLB pages, based on
224dda27d1aSArthur Othieno	  ramfs. For architectures that support it, say Y here and read
2251ad1335dSMike Rapoport	  <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details.
226dda27d1aSArthur Othieno
227dda27d1aSArthur Othieno	  If unsure, say N.
2281da177e4SLinus Torvalds
2291da177e4SLinus Torvaldsconfig HUGETLB_PAGE
2301da177e4SLinus Torvalds	def_bool HUGETLBFS
2311da177e4SLinus Torvalds
2326be24bedSMuchun Songconfig HUGETLB_PAGE_FREE_VMEMMAP
2336be24bedSMuchun Song	def_bool HUGETLB_PAGE
2346be24bedSMuchun Song	depends on X86_64
2356be24bedSMuchun Song	depends on SPARSEMEM_VMEMMAP
2366be24bedSMuchun Song
237e6d41f12SMuchun Songconfig HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON
238e6d41f12SMuchun Song	bool "Default freeing vmemmap pages of HugeTLB to on"
239e6d41f12SMuchun Song	default n
240e6d41f12SMuchun Song	depends on HUGETLB_PAGE_FREE_VMEMMAP
241e6d41f12SMuchun Song	help
242e6d41f12SMuchun Song	  When using HUGETLB_PAGE_FREE_VMEMMAP, the freeing unused vmemmap
243e6d41f12SMuchun Song	  pages associated with each HugeTLB page is default off. Say Y here
244e6d41f12SMuchun Song	  to enable freeing vmemmap pages of HugeTLB by default. It can then
245e6d41f12SMuchun Song	  be disabled on the command line via hugetlb_free_vmemmap=off.
246e6d41f12SMuchun Song
2475d752600SMike Kravetzconfig MEMFD_CREATE
2485d752600SMike Kravetz	def_bool TMPFS || HUGETLBFS
2495d752600SMike Kravetz
250461a7184SYisheng Xieconfig ARCH_HAS_GIGANTIC_PAGE
251461a7184SYisheng Xie	bool
252461a7184SYisheng Xie
2534591dabeSAlexey Dobriyansource "fs/configfs/Kconfig"
25462c204ddSLeif Lindholmsource "fs/efivarfs/Kconfig"
2557063fbf2SJoel Becker
2561da177e4SLinus Torvaldsendmenu
2571da177e4SLinus Torvalds
25867ec7d3aSRandy Dunlapmenuconfig MISC_FILESYSTEMS
25967ec7d3aSRandy Dunlap	bool "Miscellaneous filesystems"
26067ec7d3aSRandy Dunlap	default y
261a7f7f624SMasahiro Yamada	help
26267ec7d3aSRandy Dunlap	  Say Y here to get to see options for various miscellaneous
26367ec7d3aSRandy Dunlap	  filesystems, such as filesystems that came from other
26467ec7d3aSRandy Dunlap	  operating systems.
26567ec7d3aSRandy Dunlap
26667ec7d3aSRandy Dunlap	  This option alone does not add any kernel code.
26767ec7d3aSRandy Dunlap
26867ec7d3aSRandy Dunlap	  If you say N, all options in this submenu will be skipped and
26967ec7d3aSRandy Dunlap	  disabled; if unsure, say Y here.
27067ec7d3aSRandy Dunlap
27167ec7d3aSRandy Dunlapif MISC_FILESYSTEMS
2721da177e4SLinus Torvalds
27307f01962SMike Marshallsource "fs/orangefs/Kconfig"
274bc2de2aeSAlexey Dobriyansource "fs/adfs/Kconfig"
27510951bf0SAlexey Dobriyansource "fs/affs/Kconfig"
276295c896cSAlexey Dobriyansource "fs/ecryptfs/Kconfig"
277b08bac1fSAlexey Dobriyansource "fs/hfs/Kconfig"
278b08bac1fSAlexey Dobriyansource "fs/hfsplus/Kconfig"
2790b09eb32SAlexey Dobriyansource "fs/befs/Kconfig"
2800ff42384SAlexey Dobriyansource "fs/bfs/Kconfig"
281571f0a0bSAlexey Dobriyansource "fs/efs/Kconfig"
28231db6e9eSAlexey Dobriyansource "fs/jffs2/Kconfig"
2830d7eff87SArtem Bityutskiy# UBIFS File system configuration
2840d7eff87SArtem Bityutskiysource "fs/ubifs/Kconfig"
2852a22783bSAlexey Dobriyansource "fs/cramfs/Kconfig"
28622635ec9SAlexey Dobriyansource "fs/squashfs/Kconfig"
28722135169SAlexey Dobriyansource "fs/freevxfs/Kconfig"
2888b1cd7d3SAlexey Dobriyansource "fs/minix/Kconfig"
289da55e6f9SAlexey Dobriyansource "fs/omfs/Kconfig"
290928ea192SAlexey Dobriyansource "fs/hpfs/Kconfig"
2914c741583SAlexey Dobriyansource "fs/qnx4/Kconfig"
2925d026c72SKai Bankettsource "fs/qnx6/Kconfig"
29341810246SAlexey Dobriyansource "fs/romfs/Kconfig"
294ca01d6ddSTony Lucksource "fs/pstore/Kconfig"
2958af915baSAlexey Dobriyansource "fs/sysv/Kconfig"
296a276a52fSAlexey Dobriyansource "fs/ufs/Kconfig"
29747e4937aSGao Xiangsource "fs/erofs/Kconfig"
2980fd16957SHans de Goedesource "fs/vboxsf/Kconfig"
2990c4fb877SRyusuke Konishi
30067ec7d3aSRandy Dunlapendif # MISC_FILESYSTEMS
3011da177e4SLinus Torvalds
302ea0985adSJan Engelhardtmenuconfig NETWORK_FILESYSTEMS
303ea0985adSJan Engelhardt	bool "Network File Systems"
304ea0985adSJan Engelhardt	default y
3051da177e4SLinus Torvalds	depends on NET
306a7f7f624SMasahiro Yamada	help
307ea0985adSJan Engelhardt	  Say Y here to get to see options for network filesystems and
308ea0985adSJan Engelhardt	  filesystem-related networking code, such as NFS daemon and
309ea0985adSJan Engelhardt	  RPCSEC security modules.
3106fb1bc10SChuck Lever
311ea0985adSJan Engelhardt	  This option alone does not add any kernel code.
312ea0985adSJan Engelhardt
313ea0985adSJan Engelhardt	  If you say N, all options in this submenu will be skipped and
314ea0985adSJan Engelhardt	  disabled; if unsure, say Y here.
315ea0985adSJan Engelhardt
316ea0985adSJan Engelhardtif NETWORK_FILESYSTEMS
3171da177e4SLinus Torvalds
31897afe47aSAlexey Dobriyansource "fs/nfs/Kconfig"
319e2b329e2SAlexey Dobriyansource "fs/nfsd/Kconfig"
3201da177e4SLinus Torvalds
321f7790029SJeff Laytonconfig GRACE_PERIOD
322f7790029SJeff Layton	tristate
323f7790029SJeff Layton
3241da177e4SLinus Torvaldsconfig LOCKD
3251da177e4SLinus Torvalds	tristate
326dd4dc82dSRandy Dunlap	depends on FILE_LOCKING
327f7790029SJeff Layton	select GRACE_PERIOD
3281da177e4SLinus Torvalds
3291da177e4SLinus Torvaldsconfig LOCKD_V4
3301da177e4SLinus Torvalds	bool
3311da177e4SLinus Torvalds	depends on NFSD_V3 || NFS_V3
332dd4dc82dSRandy Dunlap	depends on FILE_LOCKING
3331da177e4SLinus Torvalds	default y
3341da177e4SLinus Torvalds
335a257cdd0SAndreas Gruenbacherconfig NFS_ACL_SUPPORT
336a257cdd0SAndreas Gruenbacher	tristate
337a257cdd0SAndreas Gruenbacher	select FS_POSIX_ACL
338a257cdd0SAndreas Gruenbacher
339a257cdd0SAndreas Gruenbacherconfig NFS_COMMON
340a257cdd0SAndreas Gruenbacher	bool
341f7790029SJeff Layton	depends on NFSD || NFS_FS || LOCKD
342a257cdd0SAndreas Gruenbacher	default y
343a257cdd0SAndreas Gruenbacher
34402591f9fSDai Ngoconfig NFS_V4_2_SSC_HELPER
345d9092b4bSDai Ngo	bool
346d9092b4bSDai Ngo	default y if NFS_V4_2
34702591f9fSDai Ngo
3489098c24fSAlexey Dobriyansource "net/sunrpc/Kconfig"
3499030aaf9SSage Weilsource "fs/ceph/Kconfig"
350bb26b963SAlexey Dobriyansource "fs/cifs/Kconfig"
35133a1a6feSAlexey Dobriyansource "fs/coda/Kconfig"
352b2480c7fSAlexey Dobriyansource "fs/afs/Kconfig"
3530fcb4408SAlexey Dobriyansource "fs/9p/Kconfig"
35493fa58cbSEric Van Hensbergen
355ea0985adSJan Engelhardtendif # NETWORK_FILESYSTEMS
3561da177e4SLinus Torvalds
3571da177e4SLinus Torvaldssource "fs/nls/Kconfig"
358e7fd4179SDavid Teiglandsource "fs/dlm/Kconfig"
359955405d1SGabriel Krisman Bertazisource "fs/unicode/Kconfig"
3601da177e4SLinus Torvalds
361771b53d0SJens Axboeconfig IO_WQ
362771b53d0SJens Axboe	bool
363771b53d0SJens Axboe
3641da177e4SLinus Torvaldsendmenu
365