Commit 473c4e01 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Kroah-Hartman
Browse files

staging/lustre: use 64-bit ibn_incarnation computation



ibn_incarnation is a 64-bit value, but using timeval to compute
it will cause an overflow in 2038. This changes it to use
ktime_get_real_ts64() instead.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 70513c5d
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -2749,7 +2749,7 @@ int kiblnd_startup(lnet_ni_t *ni)
	char *ifname;
	kib_dev_t *ibdev = NULL;
	kib_net_t *net;
	struct timeval tv;
	struct timespec64 tv;
	unsigned long flags;
	int rc;
	int newdev;
@@ -2767,8 +2767,9 @@ int kiblnd_startup(lnet_ni_t *ni)
	if (net == NULL)
		goto net_failed;

	do_gettimeofday(&tv);
	net->ibn_incarnation = (((__u64)tv.tv_sec) * 1000000) + tv.tv_usec;
	ktime_get_real_ts64(&tv);
	net->ibn_incarnation = tv.tv_sec * USEC_PER_SEC +
			       tv.tv_nsec / NSEC_PER_USEC;

	ni->ni_peertimeout    = *kiblnd_tunables.kib_peertimeout;
	ni->ni_maxtxcredits   = *kiblnd_tunables.kib_credits;