diff options
| author | Niklas Hambüchen <mail@nh2.me> | 2017-02-18 00:49:02 +0100 | 
|---|---|---|
| committer | Jeff Darcy <jdarcy@redhat.com> | 2017-03-07 12:10:02 -0500 | 
| commit | ce8d8195dc253a87cceaaeeb1a725090471ae4f8 (patch) | |
| tree | 87c027440d7a6af44956861b34fec3844d699038 /configure.ac | |
| parent | 89c6bedc1c2e978f67ca29f212a357984cd8a2dd (diff) | |
posix: use nanosecond accuracy when available
Programs that set mtime, such as `rsync -a`, don't work correctly on
GlusterFS, because it sets the nanoseconds to 000. This creates
problems for incremental backups, where files get accidentally copied
again and again.
For example, consider `myfile` on an ext4 system, being copied to a
GlusterFS volume, with `rsync -a` and then `cp -u` in turn. You'd
expect that after the first `rsync -a`, `cp -u` agrees that the file
need not be copied.
BUG: 1422074
Change-Id: I89c7b6a73e2e06c02851ff76b7e5cdfaa271e985
Signed-off-by: Niklas Hambüchen <mail@nh2.me>
Reviewed-on: https://review.gluster.org/16667
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Tested-by: Jeff Darcy <jdarcy@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: jiffin tony Thottan <jthottan@redhat.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 6917322bd58..28ff3e5a3f4 100644 --- a/configure.ac +++ b/configure.ac @@ -981,6 +981,13 @@ if test "x${have_posix_fallocate}" = "xyes"; then     AC_DEFINE(HAVE_POSIX_FALLOCATE, 1, [define if posix_fallocate exists])  fi +BUILD_NANOSECOND_TIMESTAMPS=no +AC_CHECK_FUNC([utimensat], [have_utimensat=yes]) +if test "x${have_utimensat}" = "xyes"; then +   BUILD_NANOSECOND_TIMESTAMPS=yes +   AC_DEFINE(HAVE_UTIMENSAT, 1, [define if utimensat exists]) +fi +  OLD_CFLAGS=${CFLAGS}  CFLAGS="-D_GNU_SOURCE"  AC_CHECK_DECL([SEEK_HOLE], , , [#include <unistd.h>]) @@ -1544,4 +1551,5 @@ echo "Experimental xlators : $BUILD_EXPERIMENTAL"  echo "Events               : $BUILD_EVENTS"  echo "EC dynamic support   : $EC_DYNAMIC_SUPPORT"  echo "Use memory pools     : $USE_MEMPOOL" +echo "Nanosecond m/atimes  : $BUILD_NANOSECOND_TIMESTAMPS"  echo  | 
