Re: invalidate_inode_pages in 2.5.32/3

Daniel Phillips
2002-09-11T02:16:41Z

On Wednesday 11 September 2002 03:49, Andrew Morton wrote:
> Daniel Phillips wrote:
> > So we just quietly drop any dirty memory mapped to a file if the user doesn't
> > run msync? Is that correct behaviour? It sure sounds wrong.
>
> If the page is truncated then yes. (indirectly: the pte dirty
> state gets flushed into PG_dirty which is then invalidated).
>
> Otherwise, no. The pte dirtiness is propagated into PG_dirty when
> the pte is detached from the page. See try_to_unmap_one() - it is
> quite straightforward.

Yep, that's what I meant the first time round. Had me worried for a moment
there...

The specific path I was refering to is:

sys_munmap->
unmap_region->
unmap_page_range->
zap_pmd_range->
zap_pte_range->

if (pte_dirty(pte))
set_page_dirty(page);

Which is the definitive way of getting the data onto disk. It's weird that
msync has to be different from fsync, or that fsync does not imply msync,
but that's the posix folks for ya, I'm sure they threw a dart blindfolded
at a list of reasons and came up with one.

--
Daniel