Messages in this thread | | | From | David Howells <> | Subject | Re: [PATCH 00/13] cross rename v4 | Date | Thu, 13 Feb 2014 16:42:50 +0000 |
| |
Miklos Szeredi <miklos@szeredi.hu> wrote:
> Regarding whiteouts, I raised a couple of questions that nobody answered > yet, so let me ask again. > > - If a filesystem containing whiteouts (fallthroughs, etc...) is mounted as > not part of a union, how are these special entities represented to > userspace?
I would suggest that whiteouts appear as otherwise negative dentries and that they don't appear in getdents().
Fallthroughs are far more 'interesting'. Maybe they should appear in getdents() with a dentry type saying what they are, but give you EREMOTE or something if you try to follow them.
Note that there is space in d_flags & DCACHE_ENTRY_TYPE for a whiteout type. I would, however, mark fallthroughs by a separate flag. So that the union dentry will mirror the source dentry's type.
> - Can the user remove them?
Overwriting whiteouts and fallthroughs and unlinking fallthroughs I don't see as a problem where they can be treated as normal negative dentries and normal files in this regard.
However, what do you do about non-opaque directories that may or may not have been unioned if you try and follow a dirent that would be a subdirectory that hasn't been copied up?
David
| |