]> 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>
Mon, 21 Oct 2019 02:52:22 +0000 (10:52 +0800)
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit c744bc1673ca0b4e50f41516fdf49c8560db073a)

src/client/Client.cc

index 55d293b11fc48ddbea3ff859368d93cf9c4fe54f..8517ecc4b7a77b033c225e6eb4d47b1cfd705b3f 100644 (file)
@@ -2100,9 +2100,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;