Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # File system configuration
0004 #
0005 
0006 menu "File systems"
0007 
0008 # Use unaligned word dcache accesses
0009 config DCACHE_WORD_ACCESS
0010        bool
0011 
0012 config VALIDATE_FS_PARSER
0013         bool "Validate filesystem parameter description"
0014         help
0015           Enable this to perform validation of the parameter description for a
0016           filesystem when it is registered.
0017 
0018 config FS_IOMAP
0019         bool
0020 
0021 if BLOCK
0022 
0023 source "fs/ext2/Kconfig"
0024 source "fs/ext4/Kconfig"
0025 source "fs/jbd2/Kconfig"
0026 
0027 config FS_MBCACHE
0028 # Meta block cache for Extended Attributes (ext2/ext3/ext4)
0029         tristate
0030         default y if EXT2_FS=y && EXT2_FS_XATTR
0031         default y if EXT4_FS=y
0032         default m if EXT2_FS_XATTR || EXT4_FS
0033 
0034 source "fs/reiserfs/Kconfig"
0035 source "fs/jfs/Kconfig"
0036 
0037 source "fs/xfs/Kconfig"
0038 source "fs/gfs2/Kconfig"
0039 source "fs/ocfs2/Kconfig"
0040 source "fs/btrfs/Kconfig"
0041 source "fs/nilfs2/Kconfig"
0042 source "fs/f2fs/Kconfig"
0043 source "fs/zonefs/Kconfig"
0044 
0045 endif # BLOCK
0046 
0047 config FS_DAX
0048         bool "File system based Direct Access (DAX) support"
0049         depends on MMU
0050         depends on !(ARM || MIPS || SPARC)
0051         depends on ZONE_DEVICE || FS_DAX_LIMITED
0052         select FS_IOMAP
0053         select DAX
0054         help
0055           Direct Access (DAX) can be used on memory-backed block devices.
0056           If the block device supports DAX and the filesystem supports DAX,
0057           then you can avoid using the pagecache to buffer I/Os.  Turning
0058           on this option will compile in support for DAX.
0059 
0060           For a DAX device to support file system access it needs to have
0061           struct pages.  For the nfit based NVDIMMs this can be enabled
0062           using the ndctl utility:
0063 
0064                 # ndctl create-namespace --force --reconfig=namespace0.0 \
0065                         --mode=fsdax --map=mem
0066 
0067           See the 'create-namespace' man page for details on the overhead of
0068           --map=mem:
0069           https://docs.pmem.io/ndctl-user-guide/ndctl-man-pages/ndctl-create-namespace
0070 
0071           For ndctl to work CONFIG_DEV_DAX needs to be enabled as well. For most
0072           file systems DAX support needs to be manually enabled globally or
0073           per-inode using a mount option as well.  See the file documentation in
0074           Documentation/filesystems/dax.rst for details.
0075 
0076           If you do not have a block device that is capable of using this,
0077           or if unsure, say N.  Saying Y will increase the size of the kernel
0078           by about 5kB.
0079 
0080 config FS_DAX_PMD
0081         bool
0082         default FS_DAX
0083         depends on FS_DAX
0084         depends on ZONE_DEVICE
0085         depends on TRANSPARENT_HUGEPAGE
0086 
0087 # Selected by DAX drivers that do not expect filesystem DAX to support
0088 # get_user_pages() of DAX mappings. I.e. "limited" indicates no support
0089 # for fork() of processes with MAP_SHARED mappings or support for
0090 # direct-I/O to a DAX mapping.
0091 config FS_DAX_LIMITED
0092         bool
0093 
0094 # Posix ACL utility routines
0095 #
0096 # Note: Posix ACLs can be implemented without these helpers.  Never use
0097 # this symbol for ifdefs in core code.
0098 #
0099 config FS_POSIX_ACL
0100         def_bool n
0101 
0102 config EXPORTFS
0103         tristate
0104 
0105 config EXPORTFS_BLOCK_OPS
0106         bool "Enable filesystem export operations for block IO"
0107         help
0108           This option enables the export operations for a filesystem to support
0109           external block IO.
0110 
0111 config FILE_LOCKING
0112         bool "Enable POSIX file locking API" if EXPERT
0113         default y
0114         help
0115           This option enables standard file locking support, required
0116           for filesystems like NFS and for the flock() system
0117           call. Disabling this option saves about 11k.
0118 
0119 source "fs/crypto/Kconfig"
0120 
0121 source "fs/verity/Kconfig"
0122 
0123 source "fs/notify/Kconfig"
0124 
0125 source "fs/quota/Kconfig"
0126 
0127 source "fs/autofs/Kconfig"
0128 source "fs/fuse/Kconfig"
0129 source "fs/overlayfs/Kconfig"
0130 
0131 menu "Caches"
0132 
0133 source "fs/netfs/Kconfig"
0134 source "fs/fscache/Kconfig"
0135 source "fs/cachefiles/Kconfig"
0136 
0137 endmenu
0138 
0139 if BLOCK
0140 menu "CD-ROM/DVD Filesystems"
0141 
0142 source "fs/isofs/Kconfig"
0143 source "fs/udf/Kconfig"
0144 
0145 endmenu
0146 endif # BLOCK
0147 
0148 if BLOCK
0149 menu "DOS/FAT/EXFAT/NT Filesystems"
0150 
0151 source "fs/fat/Kconfig"
0152 source "fs/exfat/Kconfig"
0153 source "fs/ntfs/Kconfig"
0154 source "fs/ntfs3/Kconfig"
0155 
0156 endmenu
0157 endif # BLOCK
0158 
0159 menu "Pseudo filesystems"
0160 
0161 source "fs/proc/Kconfig"
0162 source "fs/kernfs/Kconfig"
0163 source "fs/sysfs/Kconfig"
0164 
0165 config TMPFS
0166         bool "Tmpfs virtual memory file system support (former shm fs)"
0167         depends on SHMEM
0168         help
0169           Tmpfs is a file system which keeps all files in virtual memory.
0170 
0171           Everything in tmpfs is temporary in the sense that no files will be
0172           created on your hard drive. The files live in memory and swap
0173           space. If you unmount a tmpfs instance, everything stored therein is
0174           lost.
0175 
0176           See <file:Documentation/filesystems/tmpfs.rst> for details.
0177 
0178 config TMPFS_POSIX_ACL
0179         bool "Tmpfs POSIX Access Control Lists"
0180         depends on TMPFS
0181         select TMPFS_XATTR
0182         select FS_POSIX_ACL
0183         help
0184           POSIX Access Control Lists (ACLs) support additional access rights
0185           for users and groups beyond the standard owner/group/world scheme,
0186           and this option selects support for ACLs specifically for tmpfs
0187           filesystems.
0188 
0189           If you've selected TMPFS, it's possible that you'll also need
0190           this option as there are a number of Linux distros that require
0191           POSIX ACL support under /dev for certain features to work properly.
0192           For example, some distros need this feature for ALSA-related /dev
0193           files for sound to work properly.  In short, if you're not sure,
0194           say Y.
0195 
0196 config TMPFS_XATTR
0197         bool "Tmpfs extended attributes"
0198         depends on TMPFS
0199         default n
0200         help
0201           Extended attributes are name:value pairs associated with inodes by
0202           the kernel or by users (see the attr(5) manual page for details).
0203 
0204           Currently this enables support for the trusted.* and
0205           security.* namespaces.
0206 
0207           You need this for POSIX ACL support on tmpfs.
0208 
0209           If unsure, say N.
0210 
0211 config TMPFS_INODE64
0212         bool "Use 64-bit ino_t by default in tmpfs"
0213         depends on TMPFS && 64BIT
0214         default n
0215         help
0216           tmpfs has historically used only inode numbers as wide as an unsigned
0217           int. In some cases this can cause wraparound, potentially resulting
0218           in multiple files with the same inode number on a single device. This
0219           option makes tmpfs use the full width of ino_t by default, without
0220           needing to specify the inode64 option when mounting.
0221 
0222           But if a long-lived tmpfs is to be accessed by 32-bit applications so
0223           ancient that opening a file larger than 2GiB fails with EINVAL, then
0224           the INODE64 config option and inode64 mount option risk operations
0225           failing with EOVERFLOW once 33-bit inode numbers are reached.
0226 
0227           To override this configured default, use the inode32 or inode64
0228           option when mounting.
0229 
0230           If unsure, say N.
0231 
0232 config ARCH_SUPPORTS_HUGETLBFS
0233         def_bool n
0234 
0235 config HUGETLBFS
0236         bool "HugeTLB file system support"
0237         depends on X86 || IA64 || SPARC64 || ARCH_SUPPORTS_HUGETLBFS || BROKEN
0238         help
0239           hugetlbfs is a filesystem backing for HugeTLB pages, based on
0240           ramfs. For architectures that support it, say Y here and read
0241           <file:Documentation/admin-guide/mm/hugetlbpage.rst> for details.
0242 
0243           If unsure, say N.
0244 
0245 config HUGETLB_PAGE
0246         def_bool HUGETLBFS
0247 
0248 #
0249 # Select this config option from the architecture Kconfig, if it is preferred
0250 # to enable the feature of HugeTLB Vmemmap Optimization (HVO).
0251 #
0252 config ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
0253         bool
0254 
0255 config HUGETLB_PAGE_OPTIMIZE_VMEMMAP
0256         def_bool HUGETLB_PAGE
0257         depends on ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
0258         depends on SPARSEMEM_VMEMMAP
0259 
0260 config HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON
0261         bool "HugeTLB Vmemmap Optimization (HVO) defaults to on"
0262         default n
0263         depends on HUGETLB_PAGE_OPTIMIZE_VMEMMAP
0264         help
0265           The HugeTLB VmemmapvOptimization (HVO) defaults to off. Say Y here to
0266           enable HVO by default. It can be disabled via hugetlb_free_vmemmap=off
0267           (boot command line) or hugetlb_optimize_vmemmap (sysctl).
0268 
0269 config MEMFD_CREATE
0270         def_bool TMPFS || HUGETLBFS
0271 
0272 config ARCH_HAS_GIGANTIC_PAGE
0273         bool
0274 
0275 source "fs/configfs/Kconfig"
0276 source "fs/efivarfs/Kconfig"
0277 
0278 endmenu
0279 
0280 menuconfig MISC_FILESYSTEMS
0281         bool "Miscellaneous filesystems"
0282         default y
0283         help
0284           Say Y here to get to see options for various miscellaneous
0285           filesystems, such as filesystems that came from other
0286           operating systems.
0287 
0288           This option alone does not add any kernel code.
0289 
0290           If you say N, all options in this submenu will be skipped and
0291           disabled; if unsure, say Y here.
0292 
0293 if MISC_FILESYSTEMS
0294 
0295 source "fs/orangefs/Kconfig"
0296 source "fs/adfs/Kconfig"
0297 source "fs/affs/Kconfig"
0298 source "fs/ecryptfs/Kconfig"
0299 source "fs/hfs/Kconfig"
0300 source "fs/hfsplus/Kconfig"
0301 source "fs/befs/Kconfig"
0302 source "fs/bfs/Kconfig"
0303 source "fs/efs/Kconfig"
0304 source "fs/jffs2/Kconfig"
0305 # UBIFS File system configuration
0306 source "fs/ubifs/Kconfig"
0307 source "fs/cramfs/Kconfig"
0308 source "fs/squashfs/Kconfig"
0309 source "fs/freevxfs/Kconfig"
0310 source "fs/minix/Kconfig"
0311 source "fs/omfs/Kconfig"
0312 source "fs/hpfs/Kconfig"
0313 source "fs/qnx4/Kconfig"
0314 source "fs/qnx6/Kconfig"
0315 source "fs/romfs/Kconfig"
0316 source "fs/pstore/Kconfig"
0317 source "fs/sysv/Kconfig"
0318 source "fs/ufs/Kconfig"
0319 source "fs/erofs/Kconfig"
0320 source "fs/vboxsf/Kconfig"
0321 
0322 endif # MISC_FILESYSTEMS
0323 
0324 menuconfig NETWORK_FILESYSTEMS
0325         bool "Network File Systems"
0326         default y
0327         depends on NET
0328         help
0329           Say Y here to get to see options for network filesystems and
0330           filesystem-related networking code, such as NFS daemon and
0331           RPCSEC security modules.
0332 
0333           This option alone does not add any kernel code.
0334 
0335           If you say N, all options in this submenu will be skipped and
0336           disabled; if unsure, say Y here.
0337 
0338 if NETWORK_FILESYSTEMS
0339 
0340 source "fs/nfs/Kconfig"
0341 source "fs/nfsd/Kconfig"
0342 
0343 config GRACE_PERIOD
0344         tristate
0345 
0346 config LOCKD
0347         tristate
0348         depends on FILE_LOCKING
0349         select GRACE_PERIOD
0350 
0351 config LOCKD_V4
0352         bool
0353         depends on NFSD || NFS_V3
0354         depends on FILE_LOCKING
0355         default y
0356 
0357 config NFS_ACL_SUPPORT
0358         tristate
0359         select FS_POSIX_ACL
0360 
0361 config NFS_COMMON
0362         bool
0363         depends on NFSD || NFS_FS || LOCKD
0364         default y
0365 
0366 config NFS_V4_2_SSC_HELPER
0367         bool
0368         default y if NFS_V4_2
0369 
0370 source "net/sunrpc/Kconfig"
0371 source "fs/ceph/Kconfig"
0372 
0373 source "fs/cifs/Kconfig"
0374 source "fs/ksmbd/Kconfig"
0375 
0376 config SMBFS_COMMON
0377         tristate
0378         default y if CIFS=y || SMB_SERVER=y
0379         default m if CIFS=m || SMB_SERVER=m
0380 
0381 source "fs/coda/Kconfig"
0382 source "fs/afs/Kconfig"
0383 source "fs/9p/Kconfig"
0384 
0385 endif # NETWORK_FILESYSTEMS
0386 
0387 source "fs/nls/Kconfig"
0388 source "fs/dlm/Kconfig"
0389 source "fs/unicode/Kconfig"
0390 
0391 config IO_WQ
0392         bool
0393 
0394 endmenu