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: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Arnd Bergmann 2015-09-27 16:45:13 -04:00 committed by Greg Kroah-Hartman
parent 70513c5d17
commit 473c4e0102

View file

@ -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;