mirror of
https://github.com/torvalds/linux.git
synced 2024-11-20 11:01:38 +00:00
795939a93e
With mount option "xino=on", mounter declares that there are enough free high bits in underlying fs to hold the layer fsid. If overlayfs does encounter underlying inodes using the high xino bits reserved for layer fsid, a warning will be emitted and the original inode number will be used. The mount option name "xino" goes after a similar meaning mount option of aufs, but in overlayfs case, the mapping is stateless. An example for a use case of "xino=on" is when upper/lower is on an xfs filesystem. xfs uses 64bit inode numbers, but it currently never uses the upper 8bit for inode numbers exposed via stat(2) and that is not likely to change in the future without user opting-in for a new xfs feature. The actual number of unused upper bit is much larger and determined by the xfs filesystem geometry (64 - agno_log - agblklog - inopblog). That means that for all practical purpose, there are enough unused bits in xfs inode numbers for more than OVL_MAX_STACK unique fsid's. Another use case of "xino=on" is when upper/lower is on tmpfs. tmpfs inode numbers are allocated sequentially since boot, so they will practially never use the high inode number bits. For compatibility with applications that expect 32bit inodes, the feature can be disabled with "xino=off". The option "xino=auto" automatically detects underlying filesystem that use 32bit inodes and enables the feature. The Kconfig option OVERLAY_FS_XINO_AUTO and module parameter of the same name, determine if the default mode for overlayfs mount is "xino=auto" or "xino=off". Signed-off-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
106 lines
4.1 KiB
Plaintext
106 lines
4.1 KiB
Plaintext
config OVERLAY_FS
|
|
tristate "Overlay filesystem support"
|
|
select EXPORTFS
|
|
help
|
|
An overlay filesystem combines two filesystems - an 'upper' filesystem
|
|
and a 'lower' filesystem. When a name exists in both filesystems, the
|
|
object in the 'upper' filesystem is visible while the object in the
|
|
'lower' filesystem is either hidden or, in the case of directories,
|
|
merged with the 'upper' object.
|
|
|
|
For more information see Documentation/filesystems/overlayfs.txt
|
|
|
|
config OVERLAY_FS_REDIRECT_DIR
|
|
bool "Overlayfs: turn on redirect dir feature by default"
|
|
depends on OVERLAY_FS
|
|
help
|
|
If this config option is enabled then overlay filesystems will use
|
|
redirects when renaming directories by default. In this case it is
|
|
still possible to turn off redirects globally with the
|
|
"redirect_dir=off" module option or on a filesystem instance basis
|
|
with the "redirect_dir=off" mount option.
|
|
|
|
Note, that redirects are not backward compatible. That is, mounting
|
|
an overlay which has redirects on a kernel that doesn't support this
|
|
feature will have unexpected results.
|
|
|
|
If unsure, say N.
|
|
|
|
config OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW
|
|
bool "Overlayfs: follow redirects even if redirects are turned off"
|
|
default y
|
|
depends on OVERLAY_FS
|
|
help
|
|
Disable this to get a possibly more secure configuration, but that
|
|
might not be backward compatible with previous kernels.
|
|
|
|
If backward compatibility is not an issue, then it is safe and
|
|
recommended to say N here.
|
|
|
|
For more information, see Documentation/filesystems/overlayfs.txt
|
|
|
|
If unsure, say Y.
|
|
|
|
config OVERLAY_FS_INDEX
|
|
bool "Overlayfs: turn on inodes index feature by default"
|
|
depends on OVERLAY_FS
|
|
help
|
|
If this config option is enabled then overlay filesystems will use
|
|
the inodes index dir to map lower inodes to upper inodes by default.
|
|
In this case it is still possible to turn off index globally with the
|
|
"index=off" module option or on a filesystem instance basis with the
|
|
"index=off" mount option.
|
|
|
|
The inodes index feature prevents breaking of lower hardlinks on copy
|
|
up.
|
|
|
|
Note, that the inodes index feature is not backward compatible.
|
|
That is, mounting an overlay which has an inodes index on a kernel
|
|
that doesn't support this feature will have unexpected results.
|
|
|
|
If unsure, say N.
|
|
|
|
config OVERLAY_FS_NFS_EXPORT
|
|
bool "Overlayfs: turn on NFS export feature by default"
|
|
depends on OVERLAY_FS
|
|
depends on OVERLAY_FS_INDEX
|
|
help
|
|
If this config option is enabled then overlay filesystems will use
|
|
the inodes index dir to decode overlay NFS file handles by default.
|
|
In this case, it is still possible to turn off NFS export support
|
|
globally with the "nfs_export=off" module option or on a filesystem
|
|
instance basis with the "nfs_export=off" mount option.
|
|
|
|
The NFS export feature creates an index on copy up of every file and
|
|
directory. This full index is used to detect overlay filesystems
|
|
inconsistencies on lookup, like redirect from multiple upper dirs to
|
|
the same lower dir. The full index may incur some overhead on mount
|
|
time, especially when verifying that directory file handles are not
|
|
stale.
|
|
|
|
Note, that the NFS export feature is not backward compatible.
|
|
That is, mounting an overlay which has a full index on a kernel
|
|
that doesn't support this feature will have unexpected results.
|
|
|
|
Most users should say N here and enable this feature on a case-by-
|
|
case basis with the "nfs_export=on" mount option.
|
|
|
|
Say N unless you fully understand the consequences.
|
|
|
|
config OVERLAY_FS_XINO_AUTO
|
|
bool "Overlayfs: auto enable inode number mapping"
|
|
default n
|
|
depends on OVERLAY_FS
|
|
help
|
|
If this config option is enabled then overlay filesystems will use
|
|
unused high bits in undelying filesystem inode numbers to map all
|
|
inodes to a unified address space. The mapped 64bit inode numbers
|
|
might not be compatible with applications that expect 32bit inodes.
|
|
|
|
If compatibility with applications that expect 32bit inodes is not an
|
|
issue, then it is safe and recommended to say Y here.
|
|
|
|
For more information, see Documentation/filesystems/overlayfs.txt
|
|
|
|
If unsure, say N.
|