[Top] [All Lists]

Re: mmap vs mtime in 2.6.26 and up

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: mmap vs mtime in 2.6.26 and up
From: Ferenc Wagner <wferi@xxxxxxx>
Date: Fri, 15 May 2009 18:40:29 +0200
Cc: Ray Lee <ray-lk@xxxxxxxxxxxxx>, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Anton Salikhmetov <salikhmetov@xxxxxxxxx>
In-reply-to: <20090512155301.GA23160@xxxxxxxxxxxxx> (Christoph Hellwig's message of "Tue, 12 May 2009 11:53:01 -0400")
References: <874ovws94s.fsf@xxxxxxxxxxxxx> <87ljp2v6vt.fsf@xxxxxxxxxxxxx> <2c0942db0905120837g702b457bm52a412293925021a@xxxxxxxxxxxxxx> <20090512155301.GA23160@xxxxxxxxxxxxx>
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)
Christoph Hellwig <hch@xxxxxxxxxxxxx> writes:

> On Tue, May 12, 2009 at 08:37:43AM -0700, Ray Lee wrote:
>>> I've noticed that the last modification times of our RRD files got
>>> stuck after upgrading from 2.6.24 to 2.6.26 (Debian Etch -> Lenny; I
>>> also tested with 2.6.30-rc5, they are still stuck). ??It has some
>>> literature, most notably kernel bug #2645, but that's closed long ago
>>> and the resulting patch http://lkml.org/lkml/2008/1/22/370 is present
>>> in my kernels. ??Still, the test program (version 3 from the bug report)
>>> gives failures:
> The problem is pretty simple.  do_wp_page and __do_fault use
> file_update_time to update ctime and mtime.  But this function is only
> a helper for simply filesystems that have a binary inode dirty/non dirty
> state and keep the m/ctime purely in the Linux inode.  It must not be
> called from generic code as more complex filesystems need a notification
> through ->setattr to update the timestamps.  This will also affect other
> filesystems like ubifs.  I'm not entirely sure why it ever worked
> before, we must have picked up those c/mtime updates by accident
> somehow.

Thanks for the analysis.  Unfortunately I don't nearly know enough to
work on this issue, but would like to track it as it affects our
backup system.  So, shouldn't #2645 be reopened again?

<Prev in Thread] Current Thread [Next in Thread>