Michal Suchanek: > This is generally not possible in solutions that don't reserve any filename= > s. > > However, it should be possible to create whiteout of a non-existent > entry in a directory while it is locked without affecting userspace. Actually aufs generates a doubly whiteouted unique name dynamically for the target dir. For instance, when rmdir("dirA") aufs does, - lock i_mutex of the parent dir of dirA on the real fs - some verifycations for the parent-child relationship - some tests whether we can do rmdir - create whiteout for dirA - rename dirA to .wh..wh.XXXXXXXX (random value in hex), after making sure the name doesn't exist - unlock the parent dir - return to VFS And then the async workqueue removes the .wh..wh.XXXXXXXX dir with some whiteouts under it. It means the temporary whiteout name is, - always unique - always hidden (from users), even if it remains accidentally So even if an error happens in the async work, it doesn't matter. Additionally there is a userspace script called "auchk" which is like fsck for real fs. auchk script checks the logical consistency on the (writable) real fs, and removes the illegal whiteouts, remained pseudo-links, and remained temp files. > As an alternative way to perform atomic renames I would suggest > "fallthrough symlinks". If you want to rename an entry which is Symlink? Is it a different thing from DCACHE_FALLTHRU in UnionMount? I am afraid a special symlink is fragile or dangerous. Its special meaning is valid in inner union world only, is it? If something in outer world gets changed, we may not follow the symlink anymore or follow something different unexpectedly. Is it acceptable? J. R. Okajima -- 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