![]() | |||||||||||
Messages in this thread |
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?] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||
| Last update: 2005-03-22 14:02 [from the cache] ©2003-2008 | |||||||||||