1f36f774b22a0ceb7dd33eca626746c81a97b6a5 is the first bad commit commit 1f36f774b22a0ceb7dd33eca626746c81a97b6a5 Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Date: Sat Dec 26 10:56:19 2009 -0500 Switch !O_CREAT case to use of do_last() ... and now we have all intents crap well localized Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> :040000 040000 53c1effc5b22746bb83cdbc6a419bf898067882d 9606f7275fde188a056fd174aa1d622ac0630893 M fs I have a file corruption regression bisected to above. (The one step before def4af30cf945a3735ffca865788ea84b30b25d9 was fine) The test: - I have an exofs filesystem mounted on /mnt/exofs - []$ cd /mnt/exofs/some_linux_git; git status; All is fine - []$ mount -t nfs4 -o minorversion=0 localhost:/ /mnt/nfs (Where etc/exports will export /mnt/exofs via nfs4.1) - []$ cd /mnt/nfs/some_linux_git; git status; This will fail and will corrupt the .git/index file. Sometimes the file would be too short, and sometimes the file will become a directory (Yes really) Simple revert of this patch over 2.6.34-rc2 will not work so I've not checked it. A single threaded read like: "diff -r /mnt/nfs/some_linux_git /mnt/nfs/some_linux_git.back" or even "diff -r /mnt/exofs/some_linux_git /mnt/nfs/some_linux_git" works fine. A simple dd write test works fine as well. So it looks like a race that only something like git can exercise, with multi threaded reads and writes, through nfs/nfsd. I know Benny also had failures with files export ontop of 2.6.34-rc2 (I looked at the patch, it is totally out of my league, please help) I will try to reproduce this with a more conventional FS, or any thing else I should test? Thanks Boaz -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html