SnapRealm *get_snap_realm(inodeno_t r, vector<snapid_t> &snaps) {
SnapRealm *realm = snap_realms[r];
- if (!realm) {
- new SnapRealm(r, snaps);
- snap_realms[r] = realm;
- }
+ if (!realm)
+ snap_realms[r] = realm = new SnapRealm(r, snaps);
realm->nref++;
return realm;
}
{
CInode *cur = this;
while (1) {
- if (!cur->get_parent_dn())
+ if (!cur->get_parent_dn()) {
+ assert(0); // all base inodes should have realms!
return 0;
+ }
cur = cur->get_parent_dn()->get_dir()->get_inode();
if (cur->snaprealm)
- return snaprealm;
+ return cur->snaprealm;
}
}