Fixes: https://tracker.ceph.com/issues/46727
Signed-off-by: Mark Nelson <mnelson@redhat.com>
(cherry picked from commit
6a865f805b723525358ed8e79bb3d41709e98bf3)
Conflicts:
src/mds/MDCache.cc
- use the nautilus code flow of trim instead master
ls.push_back(dir);
}
}
+ int get_num_subtree_roots() const {
+ return num_subtree_roots;
+ }
CDir *get_or_open_dirfrag(MDCache *mdcache, frag_t fg);
CDir *add_dirfrag(CDir *dir);
if (!diri->is_auth()) {
if (dir->get_num_ref() > 1) // only subtree pin
continue;
- list<CDir*> ls;
- diri->get_subtree_dirfrags(ls);
- if (diri->get_num_ref() > (int)ls.size()) // only pinned by subtrees
+ if (diri->get_num_ref() > diri->get_num_subtree_roots())
continue;
// don't trim subtree root if its auth MDS is recovering.