| # SPDX-License-Identifier: GPL-2.0-only | |
| # | |
| # File system configuration | |
| # | |
| menu "File systems" | |
| # Use unaligned word dcache accesses | |
| config DCACHE_WORD_ACCESS | |
| bool | |
| config VALIDATE_FS_PARSER | |
| bool "Validate filesystem parameter description" | |
| help | |
| Enable this to perform validation of the parameter description for a | |
| filesystem when it is registered. | |
| config FS_IOMAP | |
| bool | |
| # Stackable filesystems | |
| config FS_STACK | |
| bool | |
| config BUFFER_HEAD | |
| bool | |
| # old blockdev_direct_IO implementation. Use iomap for new code instead | |
| config LEGACY_DIRECT_IO | |
| depends on BUFFER_HEAD | |
| bool | |
| if BLOCK | |
| source "fs/ext2/Kconfig" | |
| source "fs/ext4/Kconfig" | |
| source "fs/jbd2/Kconfig" | |
| config FS_MBCACHE | |
| # Meta block cache for Extended Attributes (ext2/ext3/ext4) | |
| tristate | |
| default y if EXT2_FS=y && EXT2_FS_XATTR | |
| default y if EXT4_FS=y | |
| default m if EXT2_FS_XATTR || EXT4_FS | |
| 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" | |
| source "fs/zonefs/Kconfig" | |
| endif # BLOCK | |
| config FS_DAX | |
| bool "File system based Direct Access (DAX) support" | |
| depends on MMU | |
| depends on ZONE_DEVICE | |
| select FS_IOMAP | |
| select DAX | |
| help | |
| Direct Access (DAX) can be used on memory-backed block devices. | |
| If the block device supports DAX and the filesystem supports DAX, | |
| then you can avoid using the pagecache to buffer I/Os. Turning | |
| on this option will compile in support for DAX. | |
| For a DAX device to support file system access it needs to have | |
| struct pages. For the nfit based NVDIMMs this can be enabled | |
| using the ndctl utility: | |
| # ndctl create-namespace --force --reconfig=namespace0.0 \ | |
| --mode=fsdax --map=mem | |
| See the 'create-namespace' man page for details on the overhead of | |
| --map=mem: | |
| https://docs.pmem.io/ndctl-user-guide/ndctl-man-pages/ndctl-create-namespace | |
| For ndctl to work CONFIG_DEV_DAX needs to be enabled as well. For most | |
| file systems DAX support needs to be manually enabled globally or | |
| per-inode using a mount option as well. See the file documentation in | |
| Documentation/filesystems/dax.rst for details. | |
| 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 FS_DAX_PMD | |
| bool | |
| default FS_DAX | |
| depends on FS_DAX | |
| depends on ZONE_DEVICE | |
| depends on TRANSPARENT_HUGEPAGE | |
| # Posix ACL utility routines | |
| # | |
| # Note: Posix ACLs can be implemented without these helpers. Never use | |
| # this symbol for ifdefs in core code. | |
| # | |
| config FS_POSIX_ACL | |
| def_bool n | |
| config EXPORTFS | |
| tristate | |
| config EXPORTFS_BLOCK_OPS | |
| bool "Enable filesystem export operations for block IO" | |
| help | |
| This option enables the export operations for a filesystem to support | |
| external block IO. | |
| config FILE_LOCKING | |
| bool "Enable POSIX file locking API" if EXPERT | |
| 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. | |
| 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/netfs/Kconfig" | |
| source "fs/cachefiles/Kconfig" | |
| endmenu | |
| if BLOCK | |
| menu "CD-ROM/DVD Filesystems" | |
| source "fs/isofs/Kconfig" | |
| source "fs/udf/Kconfig" | |
| endmenu | |
| endif # BLOCK | |
| if BLOCK | |
| menu "DOS/FAT/EXFAT/NT Filesystems" | |
| source "fs/fat/Kconfig" | |
| source "fs/exfat/Kconfig" | |
| source "fs/ntfs/Kconfig" | |
| source "fs/ntfs3/Kconfig" | |
| endmenu | |
| endif # BLOCK | |
| menu "Pseudo filesystems" | |
| source "fs/proc/Kconfig" | |
| source "fs/kernfs/Kconfig" | |
| source "fs/sysfs/Kconfig" | |
| config TMPFS | |
| bool "Tmpfs virtual memory file system support (former shm fs)" | |
| depends on SHMEM | |
| select MEMFD_CREATE | |
| 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.rst> for details. | |
| config TMPFS_POSIX_ACL | |
| bool "Tmpfs POSIX Access Control Lists" | |
| depends on TMPFS | |
| select TMPFS_XATTR | |
| select FS_POSIX_ACL | |
| 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 TMPFS, 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 TMPFS_XATTR | |
| bool "Tmpfs extended attributes" | |
| depends on TMPFS | |
| 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). | |
| This enables support for the trusted.*, security.* and user.* | |
| namespaces. | |
| You need this for POSIX ACL support on tmpfs. | |
| If unsure, say N. | |
| config TMPFS_INODE64 | |
| bool "Use 64-bit ino_t by default in tmpfs" | |
| depends on TMPFS && 64BIT | |
| default n | |
| help | |
| tmpfs has historically used only inode numbers as wide as an unsigned | |
| int. In some cases this can cause wraparound, potentially resulting | |
| in multiple files with the same inode number on a single device. This | |
| option makes tmpfs use the full width of ino_t by default, without | |
| needing to specify the inode64 option when mounting. | |
| But if a long-lived tmpfs is to be accessed by 32-bit applications so | |
| ancient that opening a file larger than 2GiB fails with EINVAL, then | |
| the INODE64 config option and inode64 mount option risk operations | |
| failing with EOVERFLOW once 33-bit inode numbers are reached. | |
| To override this configured default, use the inode32 or inode64 | |
| option when mounting. | |
| If unsure, say N. | |
| config TMPFS_QUOTA | |
| bool "Tmpfs quota support" | |
| depends on TMPFS | |
| select QUOTA | |
| help | |
| Quota support allows to set per user and group limits for tmpfs | |
| usage. Say Y to enable quota support. Once enabled you can control | |
| user and group quota enforcement with quota, usrquota and grpquota | |
| mount options. | |
| If unsure, say N. | |
| config ARCH_SUPPORTS_HUGETLBFS | |
| def_bool n | |
| menuconfig HUGETLBFS | |
| bool "HugeTLB file system support" | |
| depends on ARCH_SUPPORTS_HUGETLBFS | |
| select MEMFD_CREATE | |
| select PADATA if SMP | |
| 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. | |
| if HUGETLBFS | |
| config HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON | |
| bool "HugeTLB Vmemmap Optimization (HVO) defaults to on" | |
| default n | |
| depends on HUGETLB_PAGE_OPTIMIZE_VMEMMAP | |
| help | |
| The HugeTLB Vmemmap Optimization (HVO) defaults to off. Say Y here to | |
| enable HVO by default. It can be disabled via hugetlb_free_vmemmap=off | |
| (boot command line) or hugetlb_optimize_vmemmap (sysctl). | |
| endif # HUGETLBFS | |
| config HUGETLB_PAGE | |
| def_bool HUGETLBFS | |
| select XARRAY_MULTI | |
| config HUGETLB_PAGE_OPTIMIZE_VMEMMAP | |
| def_bool HUGETLB_PAGE | |
| depends on ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP | |
| depends on SPARSEMEM_VMEMMAP | |
| select SPARSEMEM_VMEMMAP_PREINIT if ARCH_WANT_HUGETLB_VMEMMAP_PREINIT | |
| config HUGETLB_PMD_PAGE_TABLE_SHARING | |
| def_bool HUGETLB_PAGE | |
| depends on ARCH_WANT_HUGE_PMD_SHARE && SPLIT_PMD_PTLOCKS | |
| config ARCH_HAS_GIGANTIC_PAGE | |
| bool | |
| source "fs/configfs/Kconfig" | |
| source "fs/efivarfs/Kconfig" | |
| endmenu | |
| menuconfig MISC_FILESYSTEMS | |
| 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 MISC_FILESYSTEMS | |
| 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/jffs2/Kconfig" | |
| # UBIFS File system configuration | |
| source "fs/ubifs/Kconfig" | |
| source "fs/cramfs/Kconfig" | |
| source "fs/squashfs/Kconfig" | |
| source "fs/minix/Kconfig" | |
| source "fs/omfs/Kconfig" | |
| source "fs/hpfs/Kconfig" | |
| source "fs/qnx4/Kconfig" | |
| source "fs/qnx6/Kconfig" | |
| source "fs/resctrl/Kconfig" | |
| source "fs/romfs/Kconfig" | |
| source "fs/pstore/Kconfig" | |
| source "fs/ufs/Kconfig" | |
| source "fs/erofs/Kconfig" | |
| source "fs/vboxsf/Kconfig" | |
| endif # MISC_FILESYSTEMS | |
| menuconfig NETWORK_FILESYSTEMS | |
| bool "Network File Systems" | |
| default y | |
| depends on NET | |
| 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 NETWORK_FILESYSTEMS | |
| source "fs/nfs/Kconfig" | |
| source "fs/nfsd/Kconfig" | |
| config GRACE_PERIOD | |
| tristate | |
| config LOCKD | |
| tristate | |
| depends on FILE_LOCKING | |
| select CRC32 | |
| select GRACE_PERIOD | |
| config LOCKD_V4 | |
| bool | |
| depends on NFSD || NFS_V3 | |
| depends on FILE_LOCKING | |
| default y | |
| config NFS_ACL_SUPPORT | |
| tristate | |
| select FS_POSIX_ACL | |
| config NFS_COMMON | |
| bool | |
| depends on NFSD || NFS_FS || LOCKD | |
| default y | |
| config NFS_COMMON_LOCALIO_SUPPORT | |
| tristate | |
| depends on NFS_LOCALIO | |
| default y if NFSD=y || NFS_FS=y | |
| default m if NFSD=m && NFS_FS=m | |
| select SUNRPC | |
| config NFS_LOCALIO | |
| bool "NFS client and server support for LOCALIO auxiliary protocol" | |
| depends on NFSD && NFS_FS | |
| select NFS_COMMON_LOCALIO_SUPPORT | |
| default n | |
| help | |
| Some NFS servers support an auxiliary NFS LOCALIO protocol | |
| that is not an official part of the NFS protocol. | |
| This option enables support for the LOCALIO protocol in the | |
| kernel's NFS server and client. Enable this to permit local | |
| NFS clients to bypass the network when issuing reads and | |
| writes to the local NFS server. | |
| If unsure, say N. | |
| config NFS_V4_2_SSC_HELPER | |
| bool | |
| default y if NFS_V4_2 | |
| source "net/sunrpc/Kconfig" | |
| source "fs/ceph/Kconfig" | |
| source "fs/smb/Kconfig" | |
| source "fs/coda/Kconfig" | |
| source "fs/afs/Kconfig" | |
| source "fs/9p/Kconfig" | |
| endif # NETWORK_FILESYSTEMS | |
| source "fs/nls/Kconfig" | |
| source "fs/dlm/Kconfig" | |
| source "fs/unicode/Kconfig" | |
| config IO_WQ | |
| bool | |
| endmenu |