* lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT]: Work around what
appears to be a kernel bug that causes utimensat to return 280
instead of 0, indicating success.
+2008-06-05 Jim Meyering <meyering@redhat.com>
+ Paul Eggert <eggert@cs.ucla.edu>
+
+ utimens.c: work around a probable Linux kernel bug
+ * lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT]: Work around what
+ appears to be a kernel bug that causes utimensat to return 280
+ instead of 0, indicating success.
+
2008-06-04 Bruno Haible <bruno@clisp.org>
* lib/copy-acl.c (qcopy_acl): Call qset_acl, not set_acl. Fixes
if (fd < 0)
{
int result = utimensat (AT_FDCWD, file, timespec, 0);
+#ifdef __linux__
+ /* Work around what might be a kernel bug:
+ http://bugzilla.redhat.com/442352
+ http://bugzilla.redhat.com/449910
+ It appears that utimensat can mistakenly return 280 rather
+ than 0 to indicate success.
+ FIXME: remove in 2010 or whenever the offending kernels
+ are no longer in common use. */
+ if (0 < result)
+ result = 0;
+#endif
+
if (result == 0 || errno != ENOSYS)
return result;
}