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 |