From: Arnd Bergmann Date: Sun, 27 Sep 2015 20:45:13 +0000 (-0400) Subject: staging/lustre: use 64-bit ibn_incarnation computation X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=473c4e01029f6692be7ddc0e7f9b75dc933c7057;p=deliverable%2Flinux.git 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 Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c index faa70f0b9b1e..c2cc4e446b22 100644 --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c @@ -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;