CURRENT_TIME is not y2038 safe.
The macro will be deleted and all the references to it
will be replaced by ktime_get_* apis.

struct timespec is also not y2038 safe.
Retain timespec for timestamp representation here as ceph
uses it internally everywhere.
These references will be changed to use struct timespec64
in a separate patch.

Signed-off-by: Deepa Dinamani <deepa.ker...@gmail.com>
Cc: "Yan, Zheng" <z...@redhat.com>
Cc: Sage Weil <s...@redhat.com>
Cc: Ilya Dryomov <idryo...@gmail.com>
Cc: ceph-de...@vger.kernel.org
---
 net/ceph/messenger.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index a550289..1825eed 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -1366,8 +1366,9 @@ static void prepare_write_keepalive(struct 
ceph_connection *con)
        dout("prepare_write_keepalive %p\n", con);
        con_out_kvec_reset(con);
        if (con->peer_features & CEPH_FEATURE_MSGR_KEEPALIVE2) {
-               struct timespec now = CURRENT_TIME;
+               struct timespec now;
 
+               ktime_get_real_ts(&now);
                con_out_kvec_add(con, sizeof(tag_keepalive2), &tag_keepalive2);
                ceph_encode_timespec(&con->out_temp_keepalive2, &now);
                con_out_kvec_add(con, sizeof(con->out_temp_keepalive2),
@@ -3149,8 +3150,9 @@ bool ceph_con_keepalive_expired(struct ceph_connection 
*con,
 {
        if (interval > 0 &&
            (con->peer_features & CEPH_FEATURE_MSGR_KEEPALIVE2)) {
-               struct timespec now = CURRENT_TIME;
+               struct timespec now;
                struct timespec ts;
+               ktime_get_real_ts(&now);
                jiffies_to_timespec(interval, &ts);
                ts = timespec_add(con->last_keepalive_ack, ts);
                return timespec_compare(&now, &ts) >= 0;
-- 
1.9.1

Reply via email to