futimens) [HAVE_FUTIMES]: Fall back on utimes if futimes fails with

errno == ENOENT.
This commit is contained in:
Paul Eggert
2005-01-03 08:51:59 +00:00
parent a672333a19
commit e75249bf8c

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -24,6 +24,8 @@
#include "utimens.h"
#include <errno.h>
#if HAVE_UTIME_H
# include <utime.h>
#endif
@@ -74,7 +76,16 @@ futimens (int fd ATTRIBUTE_UNUSED,
t = NULL;
# if HAVE_FUTIMES
if (0 <= fd)
return futimes (fd, t);
{
if (futimes (fd, t) == 0)
return 0;
/* On GNU/Linux without the futimes syscall and without /proc
mounted, glibc futimes fails with errno == ENOENT. Fall back
on utimes in this case. */
if (errno != ENOENT)
return -1;
}
# endif
return utimes (file, t);