On Fri, Jan 19, 2024 at 6:35 PM Alexander Larsson <alexl@xxxxxxxxxx> wrote: > > On Fri, 2024-01-19 at 13:08 +0200, Amir Goldstein wrote: > > On Fri, Jan 19, 2024 at 12:14 PM Miklos Szeredi <mszeredi@xxxxxxxxxx> > > wrote: > > > > > > Do you want me to fix/test and send this to Linus? > > > > Alex, can we add your RVB to v2? > > I ran into an issue converting composefs to use this. > > Suppose we have a chroot of files containing some upper dirs and we > want to make a composefs of this. For example, say > /foo/lower/dir/whiteout is a traditional whiteout. > > Previously, what happened is that I marked the whiteout file with > trusted.overlay.overlay.whiteout, and the /foo/lower/dir with > trusted.overlay.overlay.whiteouts. > > Them when I mounted then entire chroot with overlayfs these xattrs > would get unescaped and I would get a $mnt/foo/lower/dir/whiteout with > a trusted.overlay.whiteout xattr, and a $mnt/foo/lower/dir with a > trusted.overlay.whiteout. When I then mounted another overlayfs with a > lowerdir of $mnt/foo/lower it would treat the whiteout as a xwhiteout. > > However, now I need the lowerdir toplevel dir to also have a > trusted.overlay.whiteouts xattr. But when I'm converting the entire > chroot I do not know which of the directories is going to be used as > the toplevel lower dir, so I don't know where to put this marker. > > The only solution I see is to put it on *all* parent directories. Is > there a better approach here? How about checking xwhiteouts xattrs along with impure and origin xattrs in ovl_get_inode()? Then there will be no overhead in readdir and no need for marking the layer root? Miklos, would that be acceptable? Thanks, Amir.