Re: [PATCH 00/13] cross rename v4

From: David Howells
Date: Thu Feb 13 2014 - 11:43:32 EST


Miklos Szeredi <miklos@xxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/