aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Dunlop <[email protected]>2011-12-06 15:29:58 +1100
committerBrian Behlendorf <[email protected]>2011-12-12 11:06:03 -0800
commit791dc876eb59f1543fee0bcfc1a97691c643ea3c (patch)
treeea8111a84bf24c8bac55a1bf0c2d980b69a15e61
parente05bec805b066e72266281a03e57e61e7dd53264 (diff)
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 <[email protected]> Closes ZFS issue #487
-rw-r--r--include/sys/time.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/include/sys/time.h b/include/sys/time.h
index ed3aae934..341b531ef 100644
--- a/include/sys/time.h
+++ b/include/sys/time.h
@@ -34,8 +34,13 @@
#include <sys/types.h>
#include <sys/timer.h>
-#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 */