^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) config OVERLAY_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) tristate "Overlay filesystem support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) select EXPORTFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) An overlay filesystem combines two filesystems - an 'upper' filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) and a 'lower' filesystem. When a name exists in both filesystems, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) object in the 'upper' filesystem is visible while the object in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) 'lower' filesystem is either hidden or, in the case of directories,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) merged with the 'upper' object.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) For more information see Documentation/filesystems/overlayfs.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) config OVERLAY_FS_REDIRECT_DIR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) bool "Overlayfs: turn on redirect directory feature by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) depends on OVERLAY_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) If this config option is enabled then overlay filesystems will use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) redirects when renaming directories by default. In this case it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) still possible to turn off redirects globally with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) "redirect_dir=off" module option or on a filesystem instance basis
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) with the "redirect_dir=off" mount option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) Note, that redirects are not backward compatible. That is, mounting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) an overlay which has redirects on a kernel that doesn't support this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) feature will have unexpected results.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) config OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) bool "Overlayfs: follow redirects even if redirects are turned off"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) depends on OVERLAY_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) Disable this to get a possibly more secure configuration, but that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) might not be backward compatible with previous kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) If backward compatibility is not an issue, then it is safe and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) recommended to say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) For more information, see Documentation/filesystems/overlayfs.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) config OVERLAY_FS_INDEX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) bool "Overlayfs: turn on inodes index feature by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) depends on OVERLAY_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) If this config option is enabled then overlay filesystems will use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) the index directory to map lower inodes to upper inodes by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) In this case it is still possible to turn off index globally with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) "index=off" module option or on a filesystem instance basis with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) "index=off" mount option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) The inodes index feature prevents breaking of lower hardlinks on copy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) up.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) Note, that the inodes index feature is not backward compatible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) That is, mounting an overlay which has an inodes index on a kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) that doesn't support this feature will have unexpected results.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) config OVERLAY_FS_NFS_EXPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) bool "Overlayfs: turn on NFS export feature by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) depends on OVERLAY_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) depends on OVERLAY_FS_INDEX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) depends on !OVERLAY_FS_METACOPY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) If this config option is enabled then overlay filesystems will use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) the index directory to decode overlay NFS file handles by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) In this case, it is still possible to turn off NFS export support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) globally with the "nfs_export=off" module option or on a filesystem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) instance basis with the "nfs_export=off" mount option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) The NFS export feature creates an index on copy up of every file and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) directory. This full index is used to detect overlay filesystems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) inconsistencies on lookup, like redirect from multiple upper dirs to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) the same lower dir. The full index may incur some overhead on mount
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) time, especially when verifying that directory file handles are not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) stale.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) Note, that the NFS export feature is not backward compatible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) That is, mounting an overlay which has a full index on a kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) that doesn't support this feature will have unexpected results.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) Most users should say N here and enable this feature on a case-by-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) case basis with the "nfs_export=on" mount option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) Say N unless you fully understand the consequences.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) config OVERLAY_FS_XINO_AUTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) bool "Overlayfs: auto enable inode number mapping"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) depends on OVERLAY_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) depends on 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) If this config option is enabled then overlay filesystems will use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) unused high bits in undelying filesystem inode numbers to map all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) inodes to a unified address space. The mapped 64bit inode numbers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) might not be compatible with applications that expect 32bit inodes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) If compatibility with applications that expect 32bit inodes is not an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) issue, then it is safe and recommended to say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) For more information, see Documentation/filesystems/overlayfs.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) config OVERLAY_FS_METACOPY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) bool "Overlayfs: turn on metadata only copy up feature by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) depends on OVERLAY_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) select OVERLAY_FS_REDIRECT_DIR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) If this config option is enabled then overlay filesystems will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) copy up only metadata where appropriate and data copy up will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) happen when a file is opened for WRITE operation. It is still
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) possible to turn off this feature globally with the "metacopy=off"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) module option or on a filesystem instance basis with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) "metacopy=off" mount option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) Note, that this feature is not backward compatible. That is,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) mounting an overlay which has metacopy only inodes on a kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) that doesn't support this feature will have unexpected results.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) If unsure, say N.