The ni_last_alive member of lnet_ni uses a 'long' to store a timestamp,
which breaks on 32-bit systems in 2038.

This changes it to use time64_t and the respective functions for it.

Signed-off-by: Arnd Bergmann <a...@arndb.de>
---
 drivers/staging/lustre/include/linux/lnet/lib-types.h | 2 +-
 drivers/staging/lustre/lnet/lnet/config.c             | 2 +-
 drivers/staging/lustre/lnet/lnet/lib-move.c           | 4 ++--
 drivers/staging/lustre/lnet/lnet/router.c             | 4 ++--
 drivers/staging/lustre/lnet/lnet/router_proc.c        | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/lustre/include/linux/lnet/lib-types.h 
b/drivers/staging/lustre/include/linux/lnet/lib-types.h
index 81a63dbdea25..d792c4adb0ca 100644
--- a/drivers/staging/lustre/include/linux/lnet/lib-types.h
+++ b/drivers/staging/lustre/include/linux/lnet/lib-types.h
@@ -264,7 +264,7 @@ typedef struct lnet_ni {
        lnd_t                    *ni_lnd;       /* procedural interface */
        struct lnet_tx_queue    **ni_tx_queues; /* percpt TX queues */
        int                     **ni_refs;      /* percpt reference count */
-       long                      ni_last_alive;/* when I was last alive */
+       time64_t                  ni_last_alive;/* when I was last alive */
        lnet_ni_status_t         *ni_status;    /* my health status */
        /* equivalent interfaces to use */
        char                     *ni_interfaces[LNET_MAX_INTERFACES];
diff --git a/drivers/staging/lustre/lnet/lnet/config.c 
b/drivers/staging/lustre/lnet/lnet/config.c
index 9c576ce2f455..b09a438c49d6 100644
--- a/drivers/staging/lustre/lnet/lnet/config.c
+++ b/drivers/staging/lustre/lnet/lnet/config.c
@@ -166,7 +166,7 @@ lnet_ni_alloc(__u32 net, struct cfs_expr_list *el, struct 
list_head *nilist)
 
        /* LND will fill in the address part of the NID */
        ni->ni_nid = LNET_MKNID(net, 0);
-       ni->ni_last_alive = get_seconds();
+       ni->ni_last_alive = ktime_get_real_seconds();
        list_add_tail(&ni->ni_list, nilist);
        return ni;
  failed:
diff --git a/drivers/staging/lustre/lnet/lnet/lib-move.c 
b/drivers/staging/lustre/lnet/lnet/lib-move.c
index 433faae9a2ff..6badfec4c6a0 100644
--- a/drivers/staging/lustre/lnet/lnet/lib-move.c
+++ b/drivers/staging/lustre/lnet/lnet/lib-move.c
@@ -1768,11 +1768,11 @@ lnet_parse(lnet_ni_t *ni, lnet_hdr_t *hdr, lnet_nid_t 
from_nid,
        }
 
        if (the_lnet.ln_routing &&
-           ni->ni_last_alive != get_seconds()) {
+           ni->ni_last_alive != ktime_get_real_seconds()) {
                lnet_ni_lock(ni);
 
                /* NB: so far here is the only place to set NI status to "up */
-               ni->ni_last_alive = get_seconds();
+               ni->ni_last_alive = ktime_get_real_seconds();
                if (ni->ni_status != NULL &&
                    ni->ni_status->ns_status == LNET_NI_STATUS_DOWN)
                        ni->ni_status->ns_status = LNET_NI_STATUS_UP;
diff --git a/drivers/staging/lustre/lnet/lnet/router.c 
b/drivers/staging/lustre/lnet/lnet/router.c
index 2cdda3f0067e..0357b051401f 100644
--- a/drivers/staging/lustre/lnet/lnet/router.c
+++ b/drivers/staging/lustre/lnet/lnet/router.c
@@ -789,7 +789,7 @@ static void
 lnet_update_ni_status_locked(void)
 {
        lnet_ni_t *ni;
-       long now;
+       time64_t now;
        int timeout;
 
        LASSERT(the_lnet.ln_routing);
@@ -797,7 +797,7 @@ lnet_update_ni_status_locked(void)
        timeout = router_ping_timeout +
                  max(live_router_check_interval, dead_router_check_interval);
 
-       now = get_seconds();
+       now = ktime_get_real_seconds();
        list_for_each_entry(ni, &the_lnet.ln_nis, ni_list) {
                if (ni->ni_lnd->lnd_type == LOLND)
                        continue;
diff --git a/drivers/staging/lustre/lnet/lnet/router_proc.c 
b/drivers/staging/lustre/lnet/lnet/router_proc.c
index a9f4cbf2fcfe..396c7c4e5c83 100644
--- a/drivers/staging/lustre/lnet/lnet/router_proc.c
+++ b/drivers/staging/lustre/lnet/lnet/router_proc.c
@@ -692,7 +692,7 @@ static int proc_lnet_nis(struct ctl_table *table, int write,
                if (ni != NULL) {
                        struct lnet_tx_queue *tq;
                        char *stat;
-                       long now = get_seconds();
+                       time64_t now = ktime_get_real_seconds();
                        int last_alive = -1;
                        int i;
                        int j;
-- 
2.1.0.rc2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to