On Thu, 17 Aug 2023 at 13:05, Alexander Larsson <alexl@xxxxxxxxxx> wrote: > > This is needed to properly stack overlay filesystems, I.E, being able > to create a whiteout file on an overlay mount and then use that as > part of the lowerdir in another overlay mount. > > The way this works is that we create a regular whiteout, but set the > `overlay.nowhiteout` xattr on it. Whenever we check if a file is a > whiteout we check this xattr and don't treat it as a whiteout if it is > set. The xattr itself is then stripped and when viewed as part of the > overlayfs mount it looks like a regular whiteout. > I understand the motivation, but don't have good feelings about the implementation. Like the xattr escaping this should also have the property that when fed to an old kernel version, it shouldn't interpret this object as a whiteout. Whether it remains hidden like the escaped xattrs or if it shows up as something else is uninteresting. It could just be a zero sized regular file with "overlay.whiteout". But we are also getting to the stage where the number of getxattr queries on lookup could be a performance problem. Or maybe not. It would be good to look at this aspect as well when adding xattr queries to lookup. Thanks, Millos