xref: /linux/fs/Kconfig (revision bb9707077b4ee5f77bc9939b057ff8a0d410296f)
1#
2# File system configuration
3#
4
5menu "File systems"
6
7# Use unaligned word dcache accesses
8config DCACHE_WORD_ACCESS
9       bool
10
11if BLOCK
12
13source "fs/ext2/Kconfig"
14source "fs/ext4/Kconfig"
15source "fs/jbd2/Kconfig"
16
17config FS_MBCACHE
18# Meta block cache for Extended Attributes (ext2/ext3/ext4)
19	tristate
20	default y if EXT2_FS=y && EXT2_FS_XATTR
21	default y if EXT4_FS=y
22	default m if EXT2_FS_XATTR || EXT4_FS
23
24source "fs/reiserfs/Kconfig"
25source "fs/jfs/Kconfig"
26
27source "fs/xfs/Kconfig"
28source "fs/gfs2/Kconfig"
29source "fs/ocfs2/Kconfig"
30source "fs/btrfs/Kconfig"
31source "fs/nilfs2/Kconfig"
32source "fs/f2fs/Kconfig"
33
34config FS_DAX
35	bool "Direct Access (DAX) support"
36	depends on MMU
37	depends on !(ARM || MIPS || SPARC)
38	help
39	  Direct Access (DAX) can be used on memory-backed block devices.
40	  If the block device supports DAX and the filesystem supports DAX,
41	  then you can avoid using the pagecache to buffer I/Os.  Turning
42	  on this option will compile in support for DAX; you will need to
43	  mount the filesystem using the -o dax option.
44
45	  If you do not have a block device that is capable of using this,
46	  or if unsure, say N.  Saying Y will increase the size of the kernel
47	  by about 5kB.
48
49config FS_DAX_PMD
50	bool
51	default FS_DAX
52	depends on FS_DAX
53	depends on ZONE_DEVICE
54	depends on TRANSPARENT_HUGEPAGE
55	depends on BROKEN
56
57endif # BLOCK
58
59# Posix ACL utility routines
60#
61# Note: Posix ACLs can be implemented without these helpers.  Never use
62# this symbol for ifdefs in core code.
63#
64config FS_POSIX_ACL
65	def_bool n
66
67config EXPORTFS
68	tristate
69
70config FILE_LOCKING
71	bool "Enable POSIX file locking API" if EXPERT
72	default y
73	help
74	  This option enables standard file locking support, required
75          for filesystems like NFS and for the flock() system
76          call. Disabling this option saves about 11k.
77
78config MANDATORY_FILE_LOCKING
79	bool "Enable Mandatory file locking"
80	depends on FILE_LOCKING
81	default y
82	help
83	  This option enables files appropriately marked files on appropriely
84	  mounted filesystems to support mandatory locking.
85
86	  To the best of my knowledge this is dead code that no one cares about.
87
88source "fs/crypto/Kconfig"
89
90source "fs/notify/Kconfig"
91
92source "fs/quota/Kconfig"
93
94source "fs/autofs4/Kconfig"
95source "fs/fuse/Kconfig"
96source "fs/overlayfs/Kconfig"
97
98menu "Caches"
99
100source "fs/fscache/Kconfig"
101source "fs/cachefiles/Kconfig"
102
103endmenu
104
105if BLOCK
106menu "CD-ROM/DVD Filesystems"
107
108source "fs/isofs/Kconfig"
109source "fs/udf/Kconfig"
110
111endmenu
112endif # BLOCK
113
114if BLOCK
115menu "DOS/FAT/NT Filesystems"
116
117source "fs/fat/Kconfig"
118source "fs/ntfs/Kconfig"
119
120endmenu
121endif # BLOCK
122
123menu "Pseudo filesystems"
124
125source "fs/proc/Kconfig"
126source "fs/kernfs/Kconfig"
127source "fs/sysfs/Kconfig"
128
129config TMPFS
130	bool "Tmpfs virtual memory file system support (former shm fs)"
131	depends on SHMEM
132	help
133	  Tmpfs is a file system which keeps all files in virtual memory.
134
135	  Everything in tmpfs is temporary in the sense that no files will be
136	  created on your hard drive. The files live in memory and swap
137	  space. If you unmount a tmpfs instance, everything stored therein is
138	  lost.
139
140	  See <file:Documentation/filesystems/tmpfs.txt> for details.
141
142config TMPFS_POSIX_ACL
143	bool "Tmpfs POSIX Access Control Lists"
144	depends on TMPFS
145	select TMPFS_XATTR
146	select FS_POSIX_ACL
147	help
148	  POSIX Access Control Lists (ACLs) support additional access rights
149	  for users and groups beyond the standard owner/group/world scheme,
150	  and this option selects support for ACLs specifically for tmpfs
151	  filesystems.
152
153	  If you've selected TMPFS, it's possible that you'll also need
154	  this option as there are a number of Linux distros that require
155	  POSIX ACL support under /dev for certain features to work properly.
156	  For example, some distros need this feature for ALSA-related /dev
157	  files for sound to work properly.  In short, if you're not sure,
158	  say Y.
159
160	  To learn more about Access Control Lists, visit the POSIX ACLs for
161	  Linux website <http://acl.bestbits.at/>.
162
163config TMPFS_XATTR
164	bool "Tmpfs extended attributes"
165	depends on TMPFS
166	default n
167	help
168	  Extended attributes are name:value pairs associated with inodes by
169	  the kernel or by users (see the attr(5) manual page, or visit
170	  <http://acl.bestbits.at/> for details).
171
172	  Currently this enables support for the trusted.* and
173	  security.* namespaces.
174
175	  You need this for POSIX ACL support on tmpfs.
176
177	  If unsure, say N.
178
179config HUGETLBFS
180	bool "HugeTLB file system support"
181	depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \
182		   SYS_SUPPORTS_HUGETLBFS || BROKEN
183	help
184	  hugetlbfs is a filesystem backing for HugeTLB pages, based on
185	  ramfs. For architectures that support it, say Y here and read
186	  <file:Documentation/vm/hugetlbpage.txt> for details.
187
188	  If unsure, say N.
189
190config HUGETLB_PAGE
191	def_bool HUGETLBFS
192
193source "fs/configfs/Kconfig"
194source "fs/efivarfs/Kconfig"
195
196endmenu
197
198menuconfig MISC_FILESYSTEMS
199	bool "Miscellaneous filesystems"
200	default y
201	---help---
202	  Say Y here to get to see options for various miscellaneous
203	  filesystems, such as filesystems that came from other
204	  operating systems.
205
206	  This option alone does not add any kernel code.
207
208	  If you say N, all options in this submenu will be skipped and
209	  disabled; if unsure, say Y here.
210
211if MISC_FILESYSTEMS
212
213source "fs/orangefs/Kconfig"
214source "fs/adfs/Kconfig"
215source "fs/affs/Kconfig"
216source "fs/ecryptfs/Kconfig"
217source "fs/hfs/Kconfig"
218source "fs/hfsplus/Kconfig"
219source "fs/befs/Kconfig"
220source "fs/bfs/Kconfig"
221source "fs/efs/Kconfig"
222source "fs/jffs2/Kconfig"
223# UBIFS File system configuration
224source "fs/ubifs/Kconfig"
225source "fs/logfs/Kconfig"
226source "fs/cramfs/Kconfig"
227source "fs/squashfs/Kconfig"
228source "fs/freevxfs/Kconfig"
229source "fs/minix/Kconfig"
230source "fs/omfs/Kconfig"
231source "fs/hpfs/Kconfig"
232source "fs/qnx4/Kconfig"
233source "fs/qnx6/Kconfig"
234source "fs/romfs/Kconfig"
235source "fs/pstore/Kconfig"
236source "fs/sysv/Kconfig"
237source "fs/ufs/Kconfig"
238source "fs/exofs/Kconfig"
239
240endif # MISC_FILESYSTEMS
241
242source "fs/exofs/Kconfig.ore"
243
244menuconfig NETWORK_FILESYSTEMS
245	bool "Network File Systems"
246	default y
247	depends on NET
248	---help---
249	  Say Y here to get to see options for network filesystems and
250	  filesystem-related networking code, such as NFS daemon and
251	  RPCSEC security modules.
252
253	  This option alone does not add any kernel code.
254
255	  If you say N, all options in this submenu will be skipped and
256	  disabled; if unsure, say Y here.
257
258if NETWORK_FILESYSTEMS
259
260source "fs/nfs/Kconfig"
261source "fs/nfsd/Kconfig"
262
263config GRACE_PERIOD
264	tristate
265
266config LOCKD
267	tristate
268	depends on FILE_LOCKING
269	select GRACE_PERIOD
270
271config LOCKD_V4
272	bool
273	depends on NFSD_V3 || NFS_V3
274	depends on FILE_LOCKING
275	default y
276
277config NFS_ACL_SUPPORT
278	tristate
279	select FS_POSIX_ACL
280
281config NFS_COMMON
282	bool
283	depends on NFSD || NFS_FS || LOCKD
284	default y
285
286source "net/sunrpc/Kconfig"
287source "fs/ceph/Kconfig"
288source "fs/cifs/Kconfig"
289source "fs/ncpfs/Kconfig"
290source "fs/coda/Kconfig"
291source "fs/afs/Kconfig"
292source "fs/9p/Kconfig"
293
294endif # NETWORK_FILESYSTEMS
295
296source "fs/nls/Kconfig"
297source "fs/dlm/Kconfig"
298
299endmenu
300