NFS EINVAL with O_TRUNC
From: Martin Waitz
Date: Sun Jan 27 2008 - 20:59:39 EST
hoi :)
I bisected the kernel to find out why cfs stopped working.
(open with O_TRUNC returning EINVAL when file already exists on an
cfs file system.)
First I tried to debug cfs itself, and after reading Gianlucas thread on
lkml I then looked at the kernel itself.
1c710c896eb461895d3c399e15bb5f20b39c9073 is first bad commit
commit 1c710c896eb461895d3c399e15bb5f20b39c9073
Author: Ulrich Drepper <drepper@xxxxxxxxxx>
Date: Tue May 8 00:33:25 2007 -0700
utimensat implementation
Implement utimensat(2) which is an extension to futimesat(2) in that it
a) supports nano-second resolution for the timestamps
b) allows to selectively ignore the atime/mtime value
c) allows to selectively use the current time for either atime or mtime
d) supports changing the atime/mtime of a symlink itself along the lines
of the BSD lutimes(3) functions
[...]
I don't have any clue how this commit can break cfs, but it definitely does.
At least it uncovers some bug either in the Linux NFS client or in the
cvs server code.
So, and now I will happily go to sleep...
Thanks to everybody who can figure out why above commit breaks stuff...
--
Martin
Attachment:
signature.asc
Description: Digital signature