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.