Best would be if it didn't need any modification to filesystems. All
this having to upgrade util-linux, e2fsprogs, having incompatible
filesystem features is a pain for users (just been through that).
What we already have in most filesystems:
- extended attributes, e.g. use the system.union.* namespace and
denote whiteouts and falltroughs with such an attribute
- hard links to make sure a separate inode is not necessary for each
- some way for the user to easily identify such files when not
mounted as part of a union e.g. make it a symlink pointing to
"(deleted)" or whatever
Later the extended attributes can also be used for other things like
e.g. chmod()/chown() only copying up metadata, not data, and
indicating that data is still found on the lower layers.