On Tue, May 19, Miklos Szeredi wrote: > On Tue, 19 May 2009, Jan Blunck wrote: > > The directory in the topmost filesystem is created during > > lookup. The contents of the directory isn't copied up presistently > > at that point in time. Therefore you have an empty directory in the > > topmost filesystem after the lookup. This was necessary to get rid > > of the union_relookup_topmost() calls during create, mknod, mkdir > > etc. > > > > When readdir is called, the topmost directory is filed up with > > fallthru entries which are persistently stored. This is only > > necessary to get readdir right wrt POSIX. During lookup the fallthru > > dentry, which is in fact a special negative dentry, is ignored and > > therefore the lookup continues on the lower filesystem. > > So this means that the topmost branch always needs to be writable, > right? It isn't possible to make a union of two iso9660 filesystems, > for example? Exactly. Although, you can do that with the help of tmpfs on top of the two iso9660 filesystems. Or by adding fake write support to iso9660 ... I know that this seems to be suboptimal but it is the cost that the POSIX correct readdir comes with. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html