]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: flush cap release on session flush 26271/head
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 22 Jan 2019 18:44:26 +0000 (10:44 -0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Mon, 4 Feb 2019 15:22:54 +0000 (07:22 -0800)
MDS expects the completed cap release prior to responding to the session flush
for cache drop.

Fixes: http://tracker.ceph.com/issues/38009
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 59eca7a17816317d5064840745ea5e28d3349d1a)

Conflicts:
src/client/Client.cc

src/client/Client.cc

index 9f78b24a5f8b33bb84a1454cf811c845d0a1553a..6ade501a92e2083b9d342013325f39225da2c538 100644 (file)
@@ -2106,6 +2106,14 @@ void Client::handle_client_session(MClientSession *m)
     break;
 
   case CEPH_SESSION_FLUSHMSG:
+    /* flush cap release */
+    {
+      auto& m = session->release;
+      if (m) {
+        session->con->send_message(std::move(m));
+        m = nullptr;
+      }
+    }
     session->con->send_message(new MClientSession(CEPH_SESSION_FLUSHMSG_ACK, m->get_seq()));
     break;