Re: [PATCH] cowlinks v2

Pavel Machek
2004-04-03T09:09:37Z

Hi!

> Erik Andersen wrote:
> > > Here's a tricky situation:
> > >
> > > 1. A file is cowlinked. Then each cowlink is mmap()'d, one per process.
> > >
> > > 2. At this point both mappings share the same pages in RAM.
> > >
> > > 3. Then one of the cowlinks is written to...
> >
> > Using mmap with PROT_WRITE on a cowlink must preemptively
> > break the link.
>
> I forget to mention, they are PROT_READ shared mappings.

I'm not mm guru, but... with rmap, we should be able to find all the
users of that shared memory, and unmap their pages, right?

Until copy is done, we don't do anything, because write is not allowed
to progress until copy is done. When copy is done we should unmap all
the pages that still point to "old" copy, let write progress, and make
users fault in.
Pavel
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]