# SPDX-License-Identifier: GPL-2.0-only
#
# File system configuration
#
menu "File systems"
# Use unaligned word dcache accesses
config [31mCONFIG_DCACHE_WORD_ACCESS[0m
bool
config [31mCONFIG_VALIDATE_FS_PARSER[0m
bool "Validate filesystem parameter description"
help
Enable this to perform validation of the parameter description for a
filesystem when it is registered.
if [31mCONFIG_BLOCK[0m
config [31mCONFIG_FS_IOMAP[0m
bool
source "fs/ext2/Kconfig"
source "fs/ext4/Kconfig"
source "fs/jbd2/Kconfig"
config [31mCONFIG_FS_MBCACHE[0m
# Meta block cache for Extended Attributes (ext2/ext3/ext4)
tristate
default y if [31mCONFIG_EXT2_FS[0m=y && [31mCONFIG_EXT2_FS_XATTR[0m
default y if [31mCONFIG_EXT4_FS[0m=y
default m if [31mCONFIG_EXT2_FS_XATTR[0m || [31mCONFIG_EXT4_FS[0m
source "fs/reiserfs/Kconfig"
source "fs/jfs/Kconfig"
source "fs/xfs/Kconfig"
source "fs/gfs2/Kconfig"
source "fs/ocfs2/Kconfig"
source "fs/btrfs/Kconfig"
source "fs/nilfs2/Kconfig"
source "fs/f2fs/Kconfig"
config [31mCONFIG_FS_DAX[0m
bool "Direct Access (DAX) support"
depends on [31mCONFIG_MMU[0m
depends on !([31mCONFIG_ARM[0m || [31mCONFIG_MIPS[0m || [31mCONFIG_SPARC[0m)
select [31mCONFIG_DEV_PAGEMAP_OPS[0m if ([31mCONFIG_ZONE_DEVICE[0m && ![31mCONFIG_FS_DAX_LIMITED[0m)
select [31mCONFIG_FS_IOMAP[0m
select [31mCONFIG_DAX[0m
help
Direct Access ([31mCONFIG_DAX[0m) can be used on memory-backed block devices.
If the block device supports [31mCONFIG_DAX[0m and the filesystem supports [31mCONFIG_DAX[0m,
then you can avoid using the pagecache to buffer I/Os. Turning
on this option will compile in support for [31mCONFIG_DAX[0m; you will need to
mount the filesystem using the -o dax option.
If you do not have a block device that is capable of using this,
or if unsure, say N. Saying Y will increase the size of the kernel
by about 5kB.
config [31mCONFIG_FS_DAX_PMD[0m
bool
default [31mCONFIG_FS_DAX[0m
depends on [31mCONFIG_FS_DAX[0m
depends on [31mCONFIG_ZONE_DEVICE[0m
depends on [31mCONFIG_TRANSPARENT_HUGEPAGE[0m
# Selected by [31mCONFIG_DAX[0m drivers that do not expect filesystem [31mCONFIG_DAX[0m to support
# get_user_pages() of [31mCONFIG_DAX[0m mappings. I.e. "limited" indicates no support
# for fork() of processes with MAP_SHARED mappings or support for
# direct-I/O to a [31mCONFIG_DAX[0m mapping.
config [31mCONFIG_FS_DAX_LIMITED[0m
bool
endif # [31mCONFIG_BLOCK[0m
# Posix ACL utility routines
#
# Note: Posix ACLs can be implemented without these helpers. Never use
# this symbol for ifdefs in core code.
#
config [31mCONFIG_FS_POSIX_ACL[0m
def_bool n
config [31mCONFIG_EXPORTFS[0m
tristate
config [31mCONFIG_EXPORTFS_BLOCK_OPS[0m
bool "Enable filesystem export operations for block IO"
help
This option enables the export operations for a filesystem to support
external block IO.
config [31mCONFIG_FILE_LOCKING[0m
bool "Enable POSIX file locking API" if [31mCONFIG_EXPERT[0m
default y
help
This option enables standard file locking support, required
for filesystems like NFS and for the flock() system
call. Disabling this option saves about 11k.
config [31mCONFIG_MANDATORY_FILE_LOCKING[0m
bool "Enable Mandatory file locking"
depends on [31mCONFIG_FILE_LOCKING[0m
default y
help
This option enables files appropriately marked files on appropriely
mounted filesystems to support mandatory locking.
To the best of my knowledge this is dead code that no one cares about.
source "fs/crypto/Kconfig"
source "fs/verity/Kconfig"
source "fs/notify/Kconfig"
source "fs/quota/Kconfig"
source "fs/autofs/Kconfig"
source "fs/fuse/Kconfig"
source "fs/overlayfs/Kconfig"
menu "Caches"
source "fs/fscache/Kconfig"
source "fs/cachefiles/Kconfig"
endmenu
if [31mCONFIG_BLOCK[0m
menu "CD-ROM/DVD Filesystems"
source "fs/isofs/Kconfig"
source "fs/udf/Kconfig"
endmenu
endif # [31mCONFIG_BLOCK[0m
if [31mCONFIG_BLOCK[0m
menu "DOS/FAT/NT Filesystems"
source "fs/fat/Kconfig"
source "fs/ntfs/Kconfig"
endmenu
endif # [31mCONFIG_BLOCK[0m
menu "Pseudo filesystems"
source "fs/proc/Kconfig"
source "fs/kernfs/Kconfig"
source "fs/sysfs/Kconfig"
config [31mCONFIG_TMPFS[0m
bool "Tmpfs virtual memory file system support (former shm fs)"
depends on [31mCONFIG_SHMEM[0m
help
Tmpfs is a file system which keeps all files in virtual memory.
Everything in tmpfs is temporary in the sense that no files will be
created on your hard drive. The files live in memory and swap
space. If you unmount a tmpfs instance, everything stored therein is
lost.
See <file:Documentation/filesystems/tmpfs.txt> for details.
config [31mCONFIG_TMPFS_POSIX_ACL[0m
bool "Tmpfs POSIX Access Control Lists"
depends on [31mCONFIG_TMPFS[0m
select [31mCONFIG_TMPFS_XATTR[0m
select [31mCONFIG_FS_POSIX_ACL[0m
help
POSIX Access Control Lists (ACLs) support additional access rights
for users and groups beyond the standard owner/group/world scheme,
and this option selects support for ACLs specifically for tmpfs
filesystems.
If you've selected [31mCONFIG_TMPFS[0m, it's possible that you'll also need
this option as there are a number of Linux distros that require
POSIX ACL support under /dev for certain features to work properly.
For example, some distros need this feature for ALSA-related /dev
files for sound to work properly. In short, if you're not sure,
say Y.
config [31mCONFIG_TMPFS_XATTR[0m
bool "Tmpfs extended attributes"
depends on [31mCONFIG_TMPFS[0m
default n
help
Extended attributes are name:value pairs associated with inodes by
the kernel or by users (see the attr(5) manual page for details).
Currently this enables support for the trusted.* and
security.* namespaces.
You need this for POSIX ACL support on tmpfs.
If unsure, say N.
config [31mCONFIG_HUGETLBFS[0m
bool "HugeTLB file system support"
depends on [31mCONFIG_X86[0m || [31mCONFIG_IA64[0m || [31mCONFIG_SPARC64[0m || ([31mCONFIG_S390[0m && [31mCONFIG_64BIT[0m) || \
[31mCONFIG_SYS_SUPPORTS_HUGETLBFS[0m || [31mCONFIG_BROKEN[0m
help
hugetlbfs is a filesystem backing for HugeTLB pages, based on
ramfs. For architectures that support it, say Y here and read
<file:Documentation/admin-guide/mm/hugetlbpage.rst> for details.
If unsure, say N.
config [31mCONFIG_HUGETLB_PAGE[0m
def_bool [31mCONFIG_HUGETLBFS[0m
config [31mCONFIG_MEMFD_CREATE[0m
def_bool [31mCONFIG_TMPFS[0m || [31mCONFIG_HUGETLBFS[0m
config [31mCONFIG_ARCH_HAS_GIGANTIC_PAGE[0m
bool
source "fs/configfs/Kconfig"
source "fs/efivarfs/Kconfig"
endmenu
menuconfig [31mCONFIG_MISC_FILESYSTEMS[0m
bool "Miscellaneous filesystems"
default y
---help---
Say Y here to get to see options for various miscellaneous
filesystems, such as filesystems that came from other
operating systems.
This option alone does not add any kernel code.
If you say N, all options in this submenu will be skipped and
disabled; if unsure, say Y here.
if [31mCONFIG_MISC_FILESYSTEMS[0m
source "fs/orangefs/Kconfig"
source "fs/adfs/Kconfig"
source "fs/affs/Kconfig"
source "fs/ecryptfs/Kconfig"
source "fs/hfs/Kconfig"
source "fs/hfsplus/Kconfig"
source "fs/befs/Kconfig"
source "fs/bfs/Kconfig"
source "fs/efs/Kconfig"
source "fs/jffs2/Kconfig"
# UBIFS File system configuration
source "fs/ubifs/Kconfig"
source "fs/cramfs/Kconfig"
source "fs/squashfs/Kconfig"
source "fs/freevxfs/Kconfig"
source "fs/minix/Kconfig"
source "fs/omfs/Kconfig"
source "fs/hpfs/Kconfig"
source "fs/qnx4/Kconfig"
source "fs/qnx6/Kconfig"
source "fs/romfs/Kconfig"
source "fs/pstore/Kconfig"
source "fs/sysv/Kconfig"
source "fs/ufs/Kconfig"
source "fs/erofs/Kconfig"
endif # [31mCONFIG_MISC_FILESYSTEMS[0m
menuconfig [31mCONFIG_NETWORK_FILESYSTEMS[0m
bool "Network File Systems"
default y
depends on [31mCONFIG_NET[0m
---help---
Say Y here to get to see options for network filesystems and
filesystem-related networking code, such as NFS daemon and
RPCSEC security modules.
This option alone does not add any kernel code.
If you say N, all options in this submenu will be skipped and
disabled; if unsure, say Y here.
if [31mCONFIG_NETWORK_FILESYSTEMS[0m
source "fs/nfs/Kconfig"
source "fs/nfsd/Kconfig"
config [31mCONFIG_GRACE_PERIOD[0m
tristate
config [31mCONFIG_LOCKD[0m
tristate
depends on [31mCONFIG_FILE_LOCKING[0m
select [31mCONFIG_GRACE_PERIOD[0m
config [31mCONFIG_LOCKD_V4[0m
bool
depends on [31mCONFIG_NFSD_V3[0m || [31mCONFIG_NFS_V3[0m
depends on [31mCONFIG_FILE_LOCKING[0m
default y
config [31mCONFIG_NFS_ACL_SUPPORT[0m
tristate
select [31mCONFIG_FS_POSIX_ACL[0m
config [31mCONFIG_NFS_COMMON[0m
bool
depends on [31mCONFIG_NFSD[0m || [31mCONFIG_NFS_FS[0m || [31mCONFIG_LOCKD[0m
default y
source "net/sunrpc/Kconfig"
source "fs/ceph/Kconfig"
source "fs/cifs/Kconfig"
source "fs/coda/Kconfig"
source "fs/afs/Kconfig"
source "fs/9p/Kconfig"
endif # [31mCONFIG_NETWORK_FILESYSTEMS[0m
source "fs/nls/Kconfig"
source "fs/dlm/Kconfig"
source "fs/unicode/Kconfig"
endmenu