From d32a2376047bc1363b9f7a2ed09060ec84c78b97 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" <zyan@redhat.com> Date: Wed, 13 Sep 2017 15:55:46 +0800 Subject: [PATCH] mds: optimize MDCache::rejoin_scour_survivor_replicas() avoid iterating dentries if dirfrag is non-auth Signed-off-by: "Yan, Zheng" <zyan@redhat.com> --- src/mds/MDCache.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index d61c3dc766d..c6c1c2c0751 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -4538,9 +4538,10 @@ void MDCache::rejoin_scour_survivor_replicas(mds_rank_t from, MMDSCacheRejoin *a p != dfs.end(); ++p) { CDir *dir = *p; + if (!dir->is_auth()) + continue; - if (dir->is_auth() && - dir->is_replica(from) && + if (dir->is_replica(from) && (ack == NULL || ack->strong_dirfrags.count(dir->dirfrag()) == 0)) { dir->remove_replica(from); dout(10) << " rem " << *dir << dendl;