Re: Race between vmtruncate and mapped areas?

Dave McCracken
2003-05-14T15:02:10Z

--On Tuesday, May 13, 2003 18:10:18 -0700 Andrew Morton <akpm@digeo.com>
wrote:

> That's the one. Process is sleeping on I/O in filemap_nopage(), wakes up
> after the truncate has done its thing and the page gets instantiated in
> pagetables.
>
> But it's an anon page now. So the application (which was racy anyway)
> gets itself an anonymous page.

Which the application thinks is still part of the file, and will expect its
changes to be written back. Granted, if the page fault occurred just after
the truncate it'd get SIGBUS, so it's clearly not a robust assumption, but
it will result in unexpected behavior. Note that if the application later
extends the file to include this page it could result in a corrupted file,
since all the pages around it will be written properly.

Dave

======================================================================
Dave McCracken IBM Linux Base Kernel Team 1-512-838-3059
dmccr@us.ibm.com T/L 678-3059