The Samba-Bugzilla – Bug 6520
time stamps - e.g. last mod time is not preserved when "unix extensions=yes" are set - and using latest cifs vfs client
Last modified: 2009-07-02 01:42:32 UTC
we have a regression here - don't know when this one crept in.
At least when using "Version 3.4.0pre2-GIT-4368df8-test" - but i'm sure other
versions are also affected
- (at least) last mod time is not preserved when "unix extensions = yes"
Using the most recent (git) cifs vfs module:
cp -p srcfile /mnt/latest/samba_srv/
does _not_ preserve time stamps as it should/must do.
I already spent hours with this one - not being always sure whether it's a cifs
or samba server issue (I know think it's a server issue).
The following debug10 log and the wireshark trace was taken when using the
following mount cmd:
mount -t cifs //server/share /mnt/tmp -o user=gk,pass=secret,noacl
I used the "noacl" option to avoid _any_ further acl interaction,
which is pointless here (allowing acls just add some additional network
frames/debug entries - not related at all here).
Created attachment 4369 [details]
debug 10 log
Created attachment 4370 [details]
I think I see the problem here. I think this is a blocker for 3.4.0.
Created attachment 4378 [details]
Patch for master and 3.4.0
Kukks, please test this patch asap.
Created attachment 4379 [details]
Patch for 3.3 and 3.2.
Modified patch for 3.3 and 3.2.
applied your patch to Version 3.4.0-GIT-95c90fa-test.
Unfortunately no change in error behaviour...
I'll upload a new debug10.
Thanks - should have worked :-). I'll get on this immediately today.
Created attachment 4384 [details]
new debug10 log after jra's patch applied
I need to see the result of the "stat" command from the local file being copied to the samba share so I know what the timestamps should be set to before I can make sense of this log.
stat of original file on the client side:
Size: 1024 Blocks: 8 IO Block: 4096 regular file
Device: 306h/774d Inode: 1223812 Links: 1
Access: (0666/-rw-rw-rw-) Uid: ( 1000/ gk) Gid: ( 100/ users)
Access: 2009-07-01 05:04:38.000000000 +0200
Modify: 1988-10-10 18:53:33.000000000 +0100
Change: 2008-06-01 03:39:08.000000000 +0200
Created attachment 4388 [details]
Replacement patch for 3.4.0 and master
Ok, this patch allows pending modtimes on all handles to be removed when an explicit time modification is done on a file name, as well as a handle.
Kukks, please check this with the latest CIFSFS.
Created attachment 4389 [details]
debug10 log after jra's 2nd patch
Created attachment 4391 [details]
Replacement patch for 3.3 and 3.2.
This fix should work for 3.3/3.2.
it was my fault taking Jeremy's "fixing" time longer as needed.
I deeply apologize for that.
Both fixes from Jeremy:
now work here!
BTW - i've only tested 3.4.x and 3.3.x (_not_ 3.2.x!)
Congrats to Jeremy! :-)
Pushed patches to v3-4-test, v3-3-test and v3-2-test.