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