From: Yan, Zheng Date: Sun, 16 Aug 2020 04:33:04 +0000 (+0800) Subject: mds: don't recover files after normal session close X-Git-Tag: v15.2.9~122^2~22^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=62644285e64aa3169962a818069e0d57d04e8eff;p=ceph.git mds: don't recover files after normal session close when closing a session, client does not flush cap releases, but client should have flushed all dirty caps. Fixes: https://tracker.ceph.com/issues/46984 Signed-off-by: "Yan, Zheng" (cherry picked from commit 91720cff1fee9e1a39e9deb4fc8e4f492c69bcd2) --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index d636646807d8..06b3a2794ccd 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -799,11 +799,12 @@ void Server::_session_logged(Session *session, uint64_t state_seq, bool open, ve } else if (session->is_closing() || session->is_killing()) { // kill any lingering capabilities, leases, requests + bool killing = session->is_killing(); while (!session->caps.empty()) { Capability *cap = session->caps.front(); CInode *in = cap->get_inode(); dout(20) << " killing capability " << ccap_string(cap->issued()) << " on " << *in << dendl; - mds->locker->remove_client_cap(in, cap, true); + mds->locker->remove_client_cap(in, cap, killing); } while (!session->leases.empty()) { ClientLease *r = session->leases.front();