[Top] [All Lists]

Re: utimensat fails to update ctime

To: Eric Blake <ebb9@xxxxxxx>
Subject: Re: utimensat fails to update ctime
From: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
Date: Tue, 22 Dec 2009 00:05:27 +0900
Cc: Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, Christoph Hellwig <hch@xxxxxx>
In-reply-to: <4B2F7A95.3010708@xxxxxxx> (Eric Blake's message of "Mon, 21 Dec 2009 06:39:33 -0700")
References: <4B2B156D.9040604@xxxxxxx> <87aaxclr4q.fsf@xxxxxxxxxxxxxxxxxxx> <4B2F7421.10005@xxxxxxx> <4B2F7A95.3010708@xxxxxxx>
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.90 (gnu/linux)
Eric Blake <ebb9@xxxxxxx> writes:

According to OGAWA Hirofumi on 12/21/2009 12:31 AM:
>>> This in turn caused a regression in coreutils 8.2, visible through 'touch 
>>> -a':
>>> http://lists.gnu.org/archive/html/bug-coreutils/2009-12/msg00171.html
>>> GNU coreutils will end up working around the bug by calling fstat/[l]stat
>>> prior to futimens/utimensat, and populating the mtime field with the
>>> desired value rather than using UTIME_OMIT.  But this is a pointless stat
>>> call, which could be avoided if the kernel were fixed to comply with POSIX
>>> by updating ctime even when mtime is UTIME_OMIT.
>> I couldn't reproduce this with your test program on my machine (latest
>> linus tree). And that utime path looks like no problem, um..., can you
>> provide output of strace or something?

> According to Eric Blake on 12/21/2009 6:12 AM:
> It may also be file-system dependent.  On the machine where I saw the
> original failure:
>> $ uname -a
>> Linux fencepost 2.6.26-2-xen-amd64 #1 SMP Thu Nov 5 04:27:12 UTC 2009
>> x86_64 GNU/Linux
> $ df -T .
> Filesystem    Type   1K-blocks      Used Available Use% Mounted on
> /dev/sdb1      xfs   419299328 269018656 150280672  65% /srv/data


This is good point. This would be xfs issue or design. xfs seems to have
own special handling of ctime.

Cc: to xfs peoples. Any idea?

> But on the machine where the test case is working:
>> $ uname -a
>> Linux vladim #1 SMP Wed Dec 9 11:14:59 EST 2009
>> i686 GNU/Linux
> $ df -T .
> Filesystem    Type   1K-blocks      Used Available Use% Mounted on
> /dev/sda3     ext3    34123236  25894932   6494892  80% /

OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>

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