]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: avoid unnecessary wakeup when handling RENEWCAPS
authorYan, Zheng <zyan@redhat.com>
Thu, 6 Dec 2018 09:22:25 +0000 (17:22 +0800)
committerYan, Zheng <zyan@redhat.com>
Tue, 5 Feb 2019 09:53:09 +0000 (17:53 +0800)
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit c744bc1673ca0b4e50f41516fdf49c8560db073a)

src/client/Client.cc

index 3350da6bb1d2888306d1c6d1851bca8b65c072d2..f26c85d4531650a82e7f779c41736c786570c401 100644 (file)
@@ -2087,9 +2087,11 @@ void Client::handle_client_session(MClientSession *m)
 
   case CEPH_SESSION_RENEWCAPS:
     if (session->cap_renew_seq == m->get_seq()) {
+      bool was_stale = ceph_clock_now() >= session->cap_ttl;
       session->cap_ttl =
        session->last_cap_renew_request + mdsmap->get_session_timeout();
-      wake_up_session_caps(session, false);
+      if (was_stale)
+       wake_up_session_caps(session, false);
     }
     break;