Mercurial > hg > octave-nkf > gnulib-hg
changeset 7712:aead3397193a
* lib/utimens.c (futimens) [HAVE_BUGGY_NFS_TIME_STAMPS]: Add a
workaround for this case. It is not autoconfigured now; offhand
it's hard to see how to autoconfigure it.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Tue, 05 Dec 2006 18:09:17 +0000 |
parents | 17e5da0fb096 |
children | 064005e1c3c3 |
files | ChangeLog lib/utimens.c |
diffstat | 2 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-12-05 Paul Eggert <eggert@cs.ucla.edu> + + * lib/utimens.c (futimens) [HAVE_BUGGY_NFS_TIME_STAMPS]: Add a + workaround for this case. It is not autoconfigured now; offhand + it's hard to see how to autoconfigure it. + 2006-12-03 Paul Eggert <eggert@cs.ucla.edu> * lib/mkdir-p.c (make_dir_parents): Fix race condition when making
--- a/lib/utimens.c +++ b/lib/utimens.c @@ -76,6 +76,23 @@ futimens (int fd ATTRIBUTE_UNUSED, char const *file, struct timespec const timespec[2]) { + /* Some Linux-based NFS clients are buggy, and mishandle time stamps + of files in NFS file systems in some cases. We have no + configure-time test for this, but please see + <http://bugs.gentoo.org/show_bug.cgi?id=132673> for references to + some of the problems with Linux 2.6.16. If this affects you, + compile with -DHAVE_BUGGY_NFS_TIME_STAMPS; this is reported to + help in some cases, albeit at a cost in performance. But you + really should upgrade your kernel to a fixed version, since the + problem affects many applications. */ + +#if HAVE_BUGGY_NFS_TIME_STAMPS + if (0 <= fd) + fsync (fd); + else + sync (); +#endif + /* There's currently no interface to set file timestamps with nanosecond resolution, so do the best we can, discarding any fractional part of the timestamp. */