Re: [RFC][PATCH 2/14] Add a new mount flag (MNT_UNION) for union mount

Eric Van Hensbergen
2007-05-15T12:06:40Z

On 5/15/07, Bharata B Rao <bharata@linux.vnet.ibm.com> wrote:
>
> So there can be two cases in union mounts:
> 1. A file exists in topmost layer and also in one or more lower layers. Deleting
> the file would result in the top layer file being deleted and a whiteout being
> created in the top layer.
>
> 2. A file exists in one or more of lower layers, but not in the topmost layer.
> Deleting this file would result in just a whiteout being created in the
> topmost layer.
>

I'd imagine there is a third potential option, which I'll admit strays
a bit from the conventional UNIX semantic. If only one layer is
marked as writable, then any changes (including delete) only effect
that layer. I could imagine this would be useful in situations like
overlaying a sandbox on an otherwise read-only source code tree (you
might want to just get rid of a modification by removing your file and
have it replaced by the original underlying source).

I suppose a further extension would be to have multiple layers marked
as mutable and functions such as delete would effect all mutable
layers, but functions like create would only affect the top mutable
layer.

As an aside, perhaps it would be useful to mark the mutable layer at
mount time (instead of having it always be the top layer). Again this
could lead to some optional non-conventional file system semantics,
but its proven useful in Plan 9 union mount semantics and it seems a
fairly trivial extension to what you currently have.

-eric