From: Patrick Donnelly Date: Tue, 22 Jan 2019 18:44:26 +0000 (-0800) Subject: client: flush cap release on session flush X-Git-Tag: v13.2.5~16^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=483062ebb9218f8ffe59fa662b50529ce35c3e43;p=ceph.git 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 - use m.detach() instead of std::move(m) as argument to send_message() --- diff --git a/src/client/Client.cc b/src/client/Client.cc index b11a9d7824d..838be01ad92 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -2119,6 +2119,10 @@ void Client::handle_client_session(MClientSession *m) break; case CEPH_SESSION_FLUSHMSG: + /* flush cap release */ + if (auto& m = session->release; m) { + session->con->send_message(m.detach()); + } session->con->send_message(new MClientSession(CEPH_SESSION_FLUSHMSG_ACK, m->get_seq())); break;