// removing a new dn?
dn->get_dir()->try_remove_unlinked_dn(dn);
- // clean up?
- if (straydn) {
+ // clean up ?
+ // respond_to_request() drops locks. So stray reintegration can race with us.
+ if (straydn && !straydn->get_projected_linkage()->is_null()) {
// Tip off the MDCache that this dentry is a stray that
// might be elegible for purge.
mdcache->notify_stray(straydn);
mds->locker->eval(in, CEPH_CAP_LOCKS, true);
// clean up?
- if (straydn) {
+ // respond_to_request() drops locks. So stray reintegration can race with us.
+ if (straydn && !straydn->get_projected_linkage()->is_null()) {
mdcache->notify_stray(straydn);
}
}