From 6e867bd9fce94bae380d46f540ab10ed60e5374a Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Tue, 22 Jan 2019 10:44:26 -0800 Subject: [PATCH] client: flush cap release on session flush 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 (cherry picked from commit 59eca7a17816317d5064840745ea5e28d3349d1a) Conflicts: src/client/Client.cc --- src/client/Client.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/client/Client.cc b/src/client/Client.cc index 9f78b24a5f8..6ade501a92e 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -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; -- 2.47.3