Re: [PATCH 00/13] cross rename v4

From: Eric W. Biederman
Date: Thu Feb 13 2014 - 15:17:57 EST


Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes:

> On Thu, Feb 13, 2014 at 11:02 AM, David Howells <dhowells@xxxxxxxxxx> wrote:
>>
>> Whilst that does seem reasonable, what about all the other software that
>> iterates over a directory? Some of that is surely not going to know about
>> DT_WHT.
>
> So?
>
> Remeber: whiteout entries do not exist "normally". No normal apps
> should care or see them, since the whole and only point of them is
> when they are part of a union mount (in which case they are not
> visible).
>
> So the "how do you see whiteouts" is really only about the raw
> filesystem mount when *not* in the normal place.
>
> IOW, it's not like these guys are going to show up in users home
> directories etc. It's more like a special device node than a file - we
> need to care about some basic system management interfaces, not about
> "random apps". So "coreutils" is the primary user, although I guess a
> few IT people would prefer for things like Nautilus etc random file
> managers to be able to show them nicely too. But if they show up as an
> icon with a question mark on them or whatever, that's really not a big
> deal either.
>
> Sure, maybe they'll look odd in some graphical file chooser *if*
> somebody makes them show up, but I think creation of a whiteout - if
> we allow it at all outside of the union mount itself - should be a
> root-only thing (the same way mknod is) so quite frankly, it falls
> under "filesystem corruption makes my directory listings look odd -
> cry me a river".
>
> (I do think we should allow creation - but for root only - for
> management and testing purposes, but I really think it's a secondary
> issue, and I do think we should literally use "mknod()" - either with
> a new S_IFWHT or even just making use of existing S_IFCHR just so you
> could use the user-space "mknod" to create it with some magic
> major/minor combination.

I see two interesting questions.

- How do I backup and restore my top layer of my union mount/filesystem?
- How do I use union mounts without in a container?

Backup and restore argues that mknod be able to create these things, and
unlink be able to remove them. rename shrug.

I expect whiteouts on a filesystem will all belong to some inode with
i_nlink == 0, and likely is not even represented on disk.

Using union mounts in a container effectively boils down to letting
non-root users create these things, so unless applications handle these
very badly I don't know why we should restrict their creation to
root. Quotas restrict the size of directories and the number of inodes
you can have, and the number of directory blocks you can have, which
handles everything except applications that misbehave in the face of the
unknown.

Eric
--
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/