Re: [RFC 12/26] ext2 white-out support

From: Jeremy Maitin-Shepard
Date: Thu Aug 02 2007 - 14:15:48 EST


JÃrn Engel <joern@xxxxxxxxx> writes:

> On Wed, 1 August 2007 15:33:30 -0400, Josef Sipek wrote:
>>
>> This brings up an very interesting (but painful) question...which makes more
>> sense? Allowing the modifications in only the top-most branch, or any branch
>> (given the user allows it at mount-time)?
>>
>> This is really question to the community at large, not just you, Dave :)

> Only write to top-most layer.

> There are two reasons for this. First it allows users to create a union
> mount, test something (e.g. update the distribution) and remove every
> trace from the test by umounting the top-most layer. Such a thing can
> be quite valuable.

Josef did specifically state that modification to the lower layers would
be allowed only if a special mount flag is given.

> The second reason is simplicity. I personally couldn't even start to
> describe the semantics. If the user does a rename, which layer will the
> change end up in? What if source or target exist in multiple layers?
> How to rename a directory in a lower layer containing a new file in an
> upper layer?

> Finding new and interesting corner cases for such a beast can be quite
> entertaining. And until someone has properly documented the semantics
> for _all_ the corner cases, my enthusiasm is below freezing point. Does
> such a documentation exist?

I think that if someone can come up with consistent (and useful)
semantics for a mount option that allows modifications to other layers
as well, it would be a useful additional feature to support. It seems
that it should be possible to add this feature at a later time in any
case.

Perhaps referring to the plan9 semantics could be helpful.

--
Jeremy Maitin-Shepard
-
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/