On Fri, 2015-07-24 at 17:01 +0100, David Howells wrote: > > (1) Whiteouts. > > Linus's idea that a union layer or overlay mounted not as part of a union > but separately, should expose whiteouts as 0,0 chardevs. Whilst this > might indeed make the backup tools easier as things like tar can then use > the stat() and mknod() interfaces rather than having to use special > ioctls or syscalls, Miklós's idea to implement them as actual 0,0 > chardevs in the underlying filesystem incurs some problems: Yeah, this is screwed up. I can kind of understand exposing them to userspace as 0,0 chardevs in the case where they're mounted outside the context of a union mount. But these are *directory entries*, not real inodes. Using chardevs to implement them *internally* is problematic. It's inefficient, because it involves an inode lookup and uses up inode#s (in implementations where that matters), and it's also caused deadlocks in some cases like JFFS2 where we don't expect the recursion that it requires. This was much nicer when it was being done with DT_WHT internally. And you could *still* expose that to userspace as a 0,0 chardev — or however you like. -- David Woodhouse Open Source Technology Centre David.Woodhouse@intel.com Intel Corporation