Replicas don't get the snaprealm opened or updated on rename.
For example:
everything on mds0
mksnap on /foo
/foo/bar has a replica on mds1
rename /foo/bar /bar
-> a snaprealm will get created for /bar on mds0
-> mds1 currently does not do anything about that... it needs to get an
accurate replica of the snaprealm portion of the inode, either from
the master, or via a lock update, or something.
See: #925
Signed-off-by: Sage Weil <sage@newdream.net>
oldin->pop_and_dirty_projected_inode(mdr->ls);
if (oldin->snaprealm && !hadrealm)
mdcache->do_realm_invalidate_and_update_notify(oldin, CEPH_SNAP_OP_SPLIT);
+ } else {
+ // FIXME this snaprealm is not filled out correctly
+ //oldin->open_snaprealm(); might be sufficient..
}
} else {
destdn->get_dir()->unlink_inode(destdn);
desti->state_set(CInode::STATE_DIRTYPARENT);
dout(10) << "added dir to logsegment renamed_files list " << *desti << dendl;
}
+ } else {
+ // FIXME: fix up snaprealm!
}
}