From 1410b5a5f5505ba7df0fdf313eefee4306807f3a Mon Sep 17 00:00:00 2001 From: Zhi Zhang Date: Mon, 9 Oct 2017 14:33:05 +0800 Subject: [PATCH] mds: no assertion on inode being purging in find_ino_peers() Signed-off-by: Zhi Zhang (cherry picked from commit e55b2dbfcacb3b5afddba2d2b24c0386a0a48ebb) --- src/mds/MDCache.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index b40833fd1cabb..3bdd067c88b39 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -8839,7 +8839,12 @@ void MDCache::open_ino(inodeno_t ino, int64_t pool, MDSInternalContextBase* fin, void MDCache::find_ino_peers(inodeno_t ino, MDSInternalContextBase *c, mds_rank_t hint) { dout(5) << "find_ino_peers " << ino << " hint " << hint << dendl; - assert(!have_inode(ino)); + CInode *in = get_inode(ino); + if (in && in->state_test(CInode::STATE_PURGING)) { + c->complete(-ESTALE); + return; + } + assert(!in); ceph_tid_t tid = ++find_ino_peer_last_tid; find_ino_peer_info_t& fip = find_ino_peer[tid]; -- 2.39.5