mirror of
https://github.com/opnsense/src.git
synced 2026-04-10 03:46:58 -04:00
On FreeBSD, time_t is 64-bit for all platforms except i386 and powerpc,
where the type is 32-bit. ZFS can handle 64-bit timestamp internally but zfs_setattr() would check if the time value can fit, we change the checking macros to match 64-bit timestamp if the platform supports it. This change has some downsides like, while you can import zfs on 32-bit platforms, the timestamp would overflow if they are out of the range. This fixes the Y2.038K issue on platforms using 64-bit timestamps. Reviewed by: pjd MFC after: 1 month
This commit is contained in:
parent
6941401c87
commit
63243c5c71
1 changed files with 5 additions and 0 deletions
|
|
@ -40,8 +40,13 @@ typedef longlong_t hrtime_t;
|
|||
|
||||
#define LBOLT ((gethrtime() * hz) / NANOSEC)
|
||||
|
||||
#if defined(__i386__) || defined(__powerpc__)
|
||||
#define TIMESPEC_OVERFLOW(ts) \
|
||||
((ts)->tv_sec < INT32_MIN || (ts)->tv_sec > INT32_MAX)
|
||||
#else
|
||||
#define TIMESPEC_OVERFLOW(ts) \
|
||||
((ts)->tv_sec < INT64_MIN || (ts)->tv_sec > INT64_MAX)
|
||||
#endif
|
||||
|
||||
#ifdef _KERNEL
|
||||
#define lbolt64 (int64_t)(LBOLT)
|
||||
|
|
|
|||
Loading…
Reference in a new issue