Lines Matching +full:s +full:- +full:merged
1 .. SPDX-License-Identifier: GPL-2.0
10 overlay-filesystem functionality in Linux (sometimes referred to as
11 union-filesystems). An overlay-filesystem tries to present a
17 ---------------
25 While directories will report an st_dev from the overlay-filesystem,
26 non-directory objects may report an st_dev from the lower filesystem or
29 over the lifetime of a non-directory object. Many applications and
48 The "xino" feature can be enabled with the "-o xino=on" overlay mount option.
51 the lifetime of the filesystem. The "-o xino=auto" overlay mount option
60 +--------------+------------+------------+-----------------+----------------+
65 +--------------+-----+------+-----+------+--------+--------+--------+-------+
68 +--------------+-----+------+-----+------+--------+--------+--------+-------+
72 +--------------+-----+------+-----+------+--------+--------+--------+-------+
74 +--------------+-----+------+-----+------+--------+--------+--------+-------+
77 +--------------+-----+------+-----+------+--------+--------+--------+-------+
84 ---------------
86 An overlay filesystem combines two filesystems - an 'upper' filesystem
90 merged with the 'upper' object.
106 A read-only overlay of two read-only filesystems may use any
110 -----------
113 upper and lower filesystems and refers to a non-directory in either,
114 then the lower object is hidden - the name refers only to the upper
117 Where both upper and lower objects are directories, a merged directory
121 "upperdir" are combined into a merged directory::
123 mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\
124 workdir=/work /merged
129 Then whenever a lookup is requested in such a merged directory, the
132 actual lookups find directories, both are stored and a merged
136 Only the lists of names from directories are merged. Other content
141 --------------------------------
146 directories (non-directories are always opaque).
149 as a zero-size regular file with the xattr "trusted.overlay.whiteout".
151 When a whiteout is found in the upper level of a merged directory, any
167 -------
169 When a 'readdir' request is made on a merged directory, the upper and
170 lower directories are each read and the name lists merged in the
171 obvious way (upper is read first, then lower - entries that already
172 exist are not re-added). This merged name list is cached in the
179 This means that changes to the merged directory do not appear while a
186 - read part of a directory
187 - remember an offset, and close the directory
188 - re-open the directory some time later
189 - seek to the remembered offset
195 Readdir on directories that are not merged is simply handled by the
199 --------------------
201 When renaming a directory that is on the lower layer or merged (i.e. the
220 - OVERLAY_FS_REDIRECT_DIR:
222 - OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW:
230 - "redirect_dir=BOOL":
232 - "redirect_always_follow=BOOL":
234 - "redirect_max=NUM":
239 - "redirect_dir=on":
241 - "redirect_dir=follow":
243 - "redirect_dir=nofollow":
245 - "redirect_dir=off":
252 on the index entry. On lookup of a merged directory, if the upper
263 Non-directories
264 ---------------
266 Objects that are not directories (files, symlinks, device-special
269 the requires write-access, such as opening for write access, changing
271 to the upper filesystem (copy_up). Note that creating a hard-link
276 opened for read-write but the data is not modified.
279 exists in the upper filesystem - creating it and any parents as
281 mode, mtime, symlink-target etc.) and then if the object is a file, the
287 filesystem - future operations on the file are barely noticed by the
293 ----------------
301 3) non-mounting task MAY gain additional privileges through the overlay,
325 mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,... /merged
329 cp -a /lower /upper
330 mount --bind /upper /merged
333 the time of copy (on-demand vs. up-front).
337 ---------------------
342 mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged
345 that case the overlay will be read-only.
354 mount -t overlay overlay -olowerdir=/a\:lower\:\:dir /merged
366 ---------------------
373 WRITE operation. After the lower file's data is copied up,
399 Data-only lower layers
400 ----------------------
415 as "data-only" lower layers, using double colon ("::") separators.
416 A normal lower layer is not allowed to be below a data-only layer, so single
422 mount -t overlay overlay -olowerdir=/l1:/l2:/l3::/do1::/do2 /merged
424 The paths of files in the "data-only" lower layers are not visible in the
425 merged overlayfs directories and the metadata and st_ino/st_dev of files
426 in the "data-only" lower layers are not visible in overlayfs inodes.
428 Only the data of the files in the "data-only" lower layers may be visible
430 to the absolute path of the "lower data" file in the "data-only" lower layer.
432 Since kernel version v6.8, "data-only" lower layers can also be added using
444 --------------------------------------
460 fs-verity support
461 -----------------
464 fs-verity enabled and overlay verity support is enabled, then the
471 that was in the lower at the time of the copy-up. If at any time
475 digest check, or from a later read due to fs-verity) and a detailed
476 error is printed to the kernel logs. For more details of how fs-verity
483 layer is fully trusted (by using dm-verity or something similar), then
486 directories are specified as "Data-only", then they can only supply
493 - "off":
496 - "on":
501 - "require":
504 will only be used if the data file has fs-verity enabled,
505 otherwise a full copy-up is used.
508 --------------------------
548 ------------------------
564 alternative form of whiteout is supported. This form is a regular, zero-size
572 Non-standard behavior
573 ---------------------
583 b) If a file residing on a lower layer is opened for read-only and then
599 If this feature is disabled, then rename(2) on a lower or merged directory
600 will fail with EXDEV ("Invalid cross-device link").
631 ---------------------------------
653 When the NFS export feature is enabled, a lookup of a merged directory,
659 will not be merged with the upper directory.
664 ----------
672 non-directory object, the index entry is a hard link to the upper inode.
680 1. For a non-upper object, encode a lower file handle from lower inode
682 3. For a pure-upper object and for an existing non-indexed upper object,
687 - Header including path type information (e.g. lower/upper)
688 - UUID of the underlying filesystem
689 - Underlying filesystem encoding of underlying inode
701 5. For a non-directory, instantiate a disconnected overlay dentry from the
706 Decoding a non-directory file handle may return a disconnected dentry.
723 The overlay filesystem does not support non-directory connectable file
732 read-write mount and will result in an error.
742 -------------
747 - "null":
749 - "off":
752 - "on":
757 - "auto": (default)
766 --------------
778 VFS. If any writeback error occurs on the upperdir's filesystem after a
794 ----------
796 The "-o userxattr" mount option forces overlayfs to use the
802 ---------
804 There's a testsuite originally developed by David Howells and currently
807 https://github.com/amir73il/unionmount-testsuite.git
811 # cd unionmount-testsuite
812 # ./run --ov --verify