On Sun, Jan 17, 2010 at 09:59:46AM +0100, Andreas Schwab wrote:
Michael Stone <mst...@mathom.us> writes:
It seems that touch -a does update ctime on btrfs, invalidating one of the
assumptions behind this test and causing it to fail.
Did you mean "does not update ctime"?
Yes. My eyes are starting to cross. I thought I had duplicated something
manually, but now I can't. So scratch what I said in the original
message. I keep getting test failures like this:
failed ls ctime test -- this failure is expected at least for SunOS4.1.4
and for tmpfs file systems on Solaris 5.5.1.
In the output below, `c' should have had a ctime more recent than
that of `a', but does not.
-rw-rw-r-- 1 mstone mstone 0 2010-01-17 14:22:47.702311166 +0000 a
-rw-rw-r-- 2 mstone mstone 0 2010-01-17 14:22:45.698811694 +0000 c
So I guess the problem is that ln isn't updating ctime. (On linux
2.6.31 + btrfs.)
stat foo
File: `foo'
Size: 0 Blocks: 0 IO Block: 4096 regular
empty file
Device: 14h/20d Inode: 121291 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ mstone) Gid: ( 1000/ mstone)
Access: 2010-01-17 09:40:52.662310537 -0500
Modify: 2010-01-17 09:40:52.662310537 -0500
Change: 2010-01-17 09:40:52.662310537 -0500
ln foo bar
stat foo
File: `foo'
Size: 0 Blocks: 0 IO Block: 4096 regular
empty file
Device: 14h/20d Inode: 121291 Links: 2
Access: (0664/-rw-rw-r--) Uid: ( 1000/ mstone) Gid: ( 1000/ mstone)
Access: 2010-01-17 09:40:52.662310537 -0500
Modify: 2010-01-17 09:40:52.662310537 -0500
Change: 2010-01-17 09:40:52.662310537 -0500
But then I also have a build log
(https://buildd.debian.org/fetch.cgi?&pkg=coreutils&ver=8.1-1&arch=amd64&stamp=1261006367&file=log)
with a different failure, which is what I thought I'd duplicated last
night, but can't for the life of me duplicate again this morning. (Short
version of the failure:
+ touch -m -d '1998-01-15 23:00' a
+ touch -m -d '1998-01-15 22:00' b
+ touch -m -d '1998-01-15 21:00' c
+ touch -a -d '1998-01-14 13:00' c
+ touch -a -d '1998-01-14 12:00' b
+ sleep 2
+ touch -a -d '1998-01-14 11:00' a
++ ls -c a c
+ set c a
+ test 'c a' = 'a c'
+ fail=1
Mike Stone