lkml.org 
[lkml]   [2008]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH][RFC][BUG] updating the ctime and mtime time stamps in msync()
On Wed, 9 Jan 2008 23:33:40 +0100
Jakob Oestergaard <jakob@unthought.net> wrote:
> On Wed, Jan 09, 2008 at 05:06:33PM -0500, Rik van Riel wrote:

> > Can we get by with simply updating the ctime and mtime every time msync()
> > is called, regardless of whether or not the mmaped pages were still dirty
> > by the time we called msync() ?
>
> The update must still happen, eventually, after a write to the mapped region
> followed by an unmap/close even if no msync is ever called.
>
> The msync only serves as a "no later than" deadline. The write to the region
> triggers the need for the update.
>
> At least this is how I read the standard - please feel free to correct me if I
> am mistaken.

You are absolutely right. If we wrote dirty pages to disk, the ctime
and mtime updates must happen no later than msync or close time.

I guess a third possible time (if we want to minimize the number of
updates) would be when natural syncing of the file data to disk, by
other things in the VM, would be about to clear the I_DIRTY_PAGES
flag on the inode. That way we do not need to remember any special
"we already flushed all dirty data, but we have not updated the mtime
and ctime yet" state.

Does this sound reasonable?

--
All rights reversed.


\
 
 \ /
  Last update: 2008-01-10 00:45    [W:0.070 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site