For ZFS, change the type of clock_t to int64_t.

The clock_t type in OpenSolaris is long (int64_t on amd64).
On FreeBSD clock_t is int32_t. The clock_t type is used in several places
in the ZFS code to store system uptime in milliseconds ("seconds * hz").

With hz=1000 we have a 32-bit integer overflow in 24 days, 20 hours,
31 minutes and 23.648 seconds. This has a user reported negative impact
on l2arc_feed_thread() and may cause unexpected results from other functions
using clock_t.

Reported by:	Artem Belevich <fbsdlist@src.cx> on freebsd-fs@
MFC after:	1 week
This commit is contained in:
Martin Matuska 2011-02-01 14:28:50 +00:00
parent f7780c61e7
commit 4530e5f790
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=218169

View File

@ -34,6 +34,10 @@
*/
#include <sys/stdint.h>
typedef int64_t clock_t;
#define _CLOCK_T_DECLARED
#include_next <sys/types.h>
#define MAXNAMELEN 256