During recursive scrub, the MDS will load a remote dentry into cache but
not necessarily check if reintegration is necessary. Before this commit,
it would only happen when the dentry is returned from a client request.
To effect global reintegration when there are too many strays, this
means a cluster admin would have to do `find` on the CephFS file system.
This is unsavory because of the cache / cap explosion involved.
Fixes: https://tracker.ceph.com/issues/53641
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit
83f9a49dfddcba06ab3e0cd9b860523fafad4605)
if (dnl == &linkage)
in->add_remote_parent(this);
+
+ // check for reintegration
+ dir->mdcache->eval_remote(this);
}
void CDentry::unlink_remote(CDentry::linkage_t *dnl)