From 791dc876eb59f1543fee0bcfc1a97691c643ea3c Mon Sep 17 00:00:00 2001 From: Chris Dunlop Date: Tue, 6 Dec 2011 15:29:58 +1100 Subject: [PATCH] Allow 64-bit timestamps to be set on 64-bit kernels ZFS and 64-bit linux are perfectly capable of dealing with 64-bit timestamps, but ZFS deliberately prevents setting them. Adjust the SPL such that TIMESPEC_OVERFLOW will not always assume 32-bit values and instead use the correct values for your kernel build. This effectively allows 64-bit timestamps on 64-bit systems. Signed-off-by: Brian Behlendorf Closes ZFS issue #487 --- include/sys/time.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/include/sys/time.h b/include/sys/time.h index ed3aae934c..341b531ef0 100644 --- a/include/sys/time.h +++ b/include/sys/time.h @@ -34,8 +34,13 @@ #include #include -#define TIME32_MAX INT32_MAX -#define TIME32_MIN INT32_MIN +#if defined(CONFIG_64BIT) +#define TIME_MAX INT64_MAX +#define TIME_MIN INT64_MIN +#else +#define TIME_MAX INT32_MAX +#define TIME_MIN INT32_MIN +#endif #define SEC 1 #define MILLISEC 1000 @@ -83,6 +88,6 @@ gethrestime_sec(void) } #define TIMESPEC_OVERFLOW(ts) \ - ((ts)->tv_sec < TIME32_MIN || (ts)->tv_sec > TIME32_MAX) + ((ts)->tv_sec < TIME_MIN || (ts)->tv_sec > TIME_MAX) #endif /* _SPL_TIME_H */