On 05/11/11 23:51, Markus Duft wrote:
> the fd in fdutimensat is 4, whereas in utimens, which is then called from 
> somewhere in there,
> it is -1, so i can't do a fsync()

If I understand things correctly, there's a simpler fix.  fdutimensat calls
futimens (fd, ts), which invokes fdutimens (fd, NULL, ts), which invokes
fsync (fd) if HAVE_BUGGY_NFS_TIME_STAMPS is nonzero.  So, please
try prepending the following to utimens.c:

#if __INTERIX
# define HAVE_BUGGY_NFS_TIME_STAMPS 1
#endif

Also, which version of Interix are you using?  Is a new version available,
or are patches available, to fix this file system bug?  It'd be nice to
mention any such information in a comment in the code.

Reply via email to