Fixes: https://tracker.ceph.com/issues/46727
Signed-off-by: Mark Nelson <mnelson@redhat.com>
get_subtree_dirfrags(v);
return v;
}
+ 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);
}
} else if (!diri->is_auth() && dir->get_num_ref() <= 1) {
// only subtree pin
- auto&& ls = diri->get_subtree_dirfrags();
- 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.
// This simplify the cache rejoin code.