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: v16.1.0~1361^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=91720cff1fee9e1a39e9deb4fc8e4f492c69bcd2;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" --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 77f2b561436b..16119ca7925d 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -820,11 +820,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();