This time is only printed in procfs, and can be easily converted
to 64-bit to avoid overflowing on 32-bit systems in 2038.

Signed-off-by: Arnd Bergmann <a...@arndb.de>
---
 drivers/staging/lustre/lustre/include/lustre_import.h |  4 ++--
 .../staging/lustre/lustre/obdclass/lprocfs_status.c   | 19 +++++++++----------
 drivers/staging/lustre/lustre/ptlrpc/events.c         |  2 +-
 drivers/staging/lustre/lustre/ptlrpc/import.c         |  2 +-
 4 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/lustre/lustre/include/lustre_import.h 
b/drivers/staging/lustre/lustre/include/lustre_import.h
index c8b89a359518..99606387f904 100644
--- a/drivers/staging/lustre/lustre/include/lustre_import.h
+++ b/drivers/staging/lustre/lustre/include/lustre_import.h
@@ -148,7 +148,7 @@ struct obd_import_conn {
 #define IMP_STATE_HIST_LEN 16
 struct import_state_hist {
        enum lustre_imp_state ish_state;
-       time_t          ish_time;
+       time64_t        ish_time;
 };
 
 /**
@@ -307,7 +307,7 @@ struct obd_import {
        __u32                imp_msghdr_flags;       /* adjusted based on 
server capability */
 
        struct imp_at        imp_at;             /* adaptive timeout data */
-       time_t              imp_last_reply_time;    /* for health check */
+       time64_t             imp_last_reply_time;    /* for health check */
 };
 
 typedef void (*obd_import_callback)(struct obd_import *imp, void *closure,
diff --git a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c 
b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
index 8d2a523ea7cf..9887ce1d51e4 100644
--- a/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
+++ b/drivers/staging/lustre/lustre/obdclass/lprocfs_status.c
@@ -846,8 +846,7 @@ int lprocfs_rd_state(struct seq_file *m, void *data)
                        &imp->imp_state_hist[(k + j) % IMP_STATE_HIST_LEN];
                if (ish->ish_state == 0)
                        continue;
-               seq_printf(m, " - ["CFS_TIME_T", %s]\n",
-                             ish->ish_time,
+               seq_printf(m, " - [%lld, %s]\n", (s64)ish->ish_time,
                              ptlrpc_import_state_name(ish->ish_state));
        }
 
@@ -872,7 +871,7 @@ int lprocfs_rd_timeouts(struct seq_file *m, void *data)
        struct obd_device *obd = (struct obd_device *)data;
        struct obd_import *imp;
        unsigned int cur, worst;
-       time_t now, worstt;
+       time64_t now, worstt;
        struct dhms ts;
        int i;
 
@@ -880,12 +879,12 @@ int lprocfs_rd_timeouts(struct seq_file *m, void *data)
        LPROCFS_CLIMP_CHECK(obd);
        imp = obd->u.cli.cl_import;
 
-       now = get_seconds();
+       now = ktime_get_real_seconds();
 
        /* Some network health info for kicks */
        s2dhms(&ts, now - imp->imp_last_reply_time);
-       seq_printf(m, "%-10s : %ld, "DHMS_FMT" ago\n",
-                      "last reply", imp->imp_last_reply_time, DHMS_VARS(&ts));
+       seq_printf(m, "%-10s : %lld, "DHMS_FMT" ago\n",
+                      "last reply", (s64)imp->imp_last_reply_time, 
DHMS_VARS(&ts));
 
        cur = at_get(&imp->imp_at.iat_net_latency);
        worst = imp->imp_at.iat_net_latency.at_worst_ever;
@@ -1190,11 +1189,11 @@ static int lprocfs_stats_seq_show(struct seq_file *p, 
void *v)
        int                              idx    = *(loff_t *)v;
 
        if (idx == 0) {
-               struct timeval now;
-               do_gettimeofday(&now);
-               seq_printf(p, "%-25s %lu.%lu secs.usecs\n",
+               struct timespec64 now;
+               ktime_get_real_ts64(&now);
+               seq_printf(p, "%-25s %llu.%9lu secs.usecs\n",
                           "snapshot_time",
-                          now.tv_sec, (unsigned long)now.tv_usec);
+                          (s64)now.tv_sec, (unsigned long)now.tv_nsec);
        }
 
        hdr = &stats->ls_cnt_header[idx];
diff --git a/drivers/staging/lustre/lustre/ptlrpc/events.c 
b/drivers/staging/lustre/lustre/ptlrpc/events.c
index c8ef9e578263..53f6b6278403 100644
--- a/drivers/staging/lustre/lustre/ptlrpc/events.c
+++ b/drivers/staging/lustre/lustre/ptlrpc/events.c
@@ -158,7 +158,7 @@ void reply_in_callback(lnet_event_t *ev)
                          ev->mlength, ev->offset, req->rq_replen);
        }
 
-       req->rq_import->imp_last_reply_time = get_seconds();
+       req->rq_import->imp_last_reply_time = ktime_get_real_seconds();
 
 out_wake:
        /* NB don't unlock till after wakeup; req can disappear under us
diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c 
b/drivers/staging/lustre/lustre/ptlrpc/import.c
index c52ceef989d5..b6f38cbbc295 100644
--- a/drivers/staging/lustre/lustre/ptlrpc/import.c
+++ b/drivers/staging/lustre/lustre/ptlrpc/import.c
@@ -79,7 +79,7 @@ static void __import_set_state(struct obd_import *imp,
        imp->imp_state = state;
        imp->imp_state_hist[imp->imp_state_hist_idx].ish_state = state;
        imp->imp_state_hist[imp->imp_state_hist_idx].ish_time =
-               get_seconds();
+               ktime_get_real_seconds();
        imp->imp_state_hist_idx = (imp->imp_state_hist_idx + 1) %
                IMP_STATE_HIST_LEN;
 }
-- 
2.1.0.rc2

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

Reply via email to