Re: invalidate_inode_pages in 2.5.32/3

From: Daniel Phillips (phillips@arcor.de)
Date: Tue Sep 10 2002 - 21:14:05 EST


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
-
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/



This archive was generated by hypermail 2b29 : Sun Sep 15 2002 - 22:00:23 EST