Re: [RFC][PATCH 10/14] In-kernel file copy between union mounted filesystems

Bharata B Rao
2007-05-22T08:36:11Z

On Tue, May 22, 2007 at 08:25:16AM +0200, Jan Engelhardt wrote:
>
> On May 22 2007 08:43, Bharata B Rao wrote:
> >On Fri, May 18, 2007 at 09:47:31AM -0400, Shaya Potter wrote:
> >> Bharata B Rao wrote:
> >>
> >> >
> >> >Not really. This is called during copyup of a file residing in a lower
> >> >layer. And that is done only for regular files.
> >>
> >> That is broken.
> >
> >But it only breaks the semantics (in other cases we allow writes only to the
> >top layer files). So the question is why do we have to copy up the device
> >node ? What difference it makes to writing to the device itself ?
>
> Because `chmod 666 blockdevnode` is not the same as writing
> to the device itself?

What if that chmod is applied on the lower level device node ? This is what
we do currently, even for regular files. Copyup happens only when the file
is opened for writing.

Let me rephrase my earlier question:

In case of regular files, when we copyup a file, we are actually preventing
any writes to the lower layers (which we have designated as read only).

Applying the same logic to devices, what do we achieve by copying them up ?
How does it matter if we write to the device through a node in the upper
layer or in the lower layer. Both the writes eventually do the same thing.

What I am trying to understand is, if the need for copyup is purely a matter
of conforming to semantics (of not allowing writes to the lower layers in
case of union mount) or do we achieve anything else by doing a device
copyup ? Are there any cases where copying up of device nodes are absolutely
essential for sane behaviour ?

Regards,
Bharata.