const CDentry& operator= (const CDentry& right);
// misc
+ bool is_parent_of(CDentry *other);
+
void make_path_string(string& s);
void make_path(filepath& fp);
void make_anchor_trace(vector<class Anchor>& trace, CInode *in);
if (common) {
dout(10) << "rename src and dest traces share common dentry " << *common << dendl;
} else {
- CInode *srcbase = mdcache->get_inode(srcpath.get_ino());
- CInode *destbase = mdcache->get_inode(destpath.get_ino());
-
// ok, extend srctrace toward root until it is an ancestor of desttrace.
- while (srcbase != destbase &&
- !srcbase->is_ancestor_of(destbase)) {
+ while (srctrace[0] != desttrace[0] &&
+ !srctrace[0]->is_parent_of(desttrace[0])) {
srctrace.insert(srctrace.begin(),
- srcbase->get_parent_dn());
- srcbase = srctrace[0]->get_dir()->get_inode();
- dout(10) << "rename prepended srctrace with " << *srctrace[0] << dendl;
+ srctrace[0]->get_dir()->get_inode()->get_parent_dn());
+ dout(10) << "rename prepending srctrace with " << *srctrace[0] << dendl;
}
// then, extend destpath until it shares the same parent as srcpath.
- while (srcbase != destbase) {
+ while (desttrace[0] != srctrace[0]) {
desttrace.insert(desttrace.begin(),
- destbase->get_parent_dn());
- destbase = desttrace[0]->get_dir()->get_inode();
- dout(10) << "rename prepended desttrace with " << *desttrace[0] << dendl;
+ desttrace[0]->get_dir()->get_inode()->get_parent_dn());
+ dout(10) << "rename prepending desttrace with " << *desttrace[0] << dendl;
}
- dout(10) << "rename src and dest traces now share common ancestor " << *srcbase << dendl;
+ dout(10) << "rename src and dest traces now share common dentry " << *desttrace[0] << dendl;
}
}