Need to initialize created and current_parent_since on new snaprealms
when they are created, or else we get incorrect results from the likes of
SnapRealm::get_snap_info() (e.g., parent snaps from before we were
created).
::decode(seq, p);
in->open_snaprealm();
- in->snaprealm->seq = in->snaprealm->created = seq;
+ in->snaprealm->seq = seq;
+ in->snaprealm->created = seq;
+ in->snaprealm->current_parent_since = seq;
do_realm_invalidate_and_update_notify(in, CEPH_SNAP_OP_SPLIT);
newrealm = true;
diri->open_snaprealm(true);
diri->snaprealm->created = snapid;
+ diri->snaprealm->current_parent_since = snapid;
}
snapid_t old_seq = diri->snaprealm->seq;
snapid_t old_lc = diri->snaprealm->last_created;
if (!diri->snaprealm) {
diri->open_snaprealm();
diri->snaprealm->created = snapid;
+ diri->snaprealm->current_parent_since = snapid;
op = CEPH_SNAP_OP_SPLIT;
}
diri->snaprealm->snaps[snapid] = info;
out << "snaprealm(" << realm.inode->ino()
<< " seq " << realm.seq
<< " lc " << realm.last_created
- << " snaps=" << realm.snaps;
+ << " cr " << realm.created;
+ if (realm.created != realm.current_parent_since)
+ out << " cps " << realm.current_parent_since;
+ out << " snaps=" << realm.snaps;
if (realm.past_parents.size()) {
out << " past_parents=(";
for (map<snapid_t, snaplink_t>::const_iterator p = realm.past_parents.begin();