From: Sage Weil Date: Wed, 5 Apr 2017 19:14:31 +0000 (-0400) Subject: osd/osd_types: pass legacy flag to from_snap_set X-Git-Tag: v12.0.3~28^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f063506b211b35e935344c43e27f2cc38bb2498f;p=ceph.git osd/osd_types: pass legacy flag to from_snap_set Signed-off-by: Sage Weil --- diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index f1d0c8ba03f1..6245bfff02cd 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -4781,7 +4781,7 @@ ostream& operator<<(ostream& out, const SnapSet& cs) } } -void SnapSet::from_snap_set(const librados::snap_set_t& ss) +void SnapSet::from_snap_set(const librados::snap_set_t& ss, bool legacy) { // NOTE: our reconstruction of snaps (and the snapc) is not strictly // correct: it will not include snaps that still logically exist @@ -4807,6 +4807,13 @@ void SnapSet::from_snap_set(const librados::snap_set_t& ss) for (vector >::const_iterator q = p->overlap.begin(); q != p->overlap.end(); ++q) clone_overlap[p->cloneid].insert(q->first, q->second); + if (!legacy) { + // p->snaps is ascending; clone_snaps is descending + vector& v = clone_snaps[p->cloneid]; + for (auto q = p->snaps.rbegin(); q != p->snaps.rend(); ++q) { + v.push_back(*q); + } + } } } diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 4c719e6c0067..68804cad1510 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -4317,7 +4317,7 @@ struct SnapSet { } /// populate SnapSet from a librados::snap_set_t - void from_snap_set(const librados::snap_set_t& ss); + void from_snap_set(const librados::snap_set_t& ss, bool legacy); /// get space accounted to clone uint64_t get_clone_bytes(snapid_t clone) const;