This was checking tracei's primary parent DN for remoteness
as a condition to calling eval_remote. However, the *primary*
parent DN in this case is the stray, which is not remote.
The correct check is tracedn (the remote dentry that got us here)
rather than tracei->get_parent_dn() (the primary dentry for the
inode that we have looked up).
This leads to eval_remote being invoked, and reintegration
of stray hard-linked inodes working.
Signed-off-by: John Spray <john.spray@redhat.com>
// take a closer look at tracei, if it happens to be a remote link
if (tracei &&
- tracei->get_parent_dn() &&
- tracei->get_parent_dn()->get_projected_linkage()->is_remote())
- mdcache->eval_remote(tracei->get_parent_dn());
+ tracedn &&
+ tracedn->get_projected_linkage()->is_remote()) {
+ mdcache->eval_remote(tracedn);
+ }
}