From affa507ba25340d183a0ac30435d3a74ffaff03e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 23 Jul 2008 13:00:14 -0700 Subject: [PATCH] mds: fix cached_snaps --- src/mds/snap.cc | 6 +++--- src/mds/snap.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mds/snap.cc b/src/mds/snap.cc index 510f6fb698ea4..98a007c90bd6f 100644 --- a/src/mds/snap.cc +++ b/src/mds/snap.cc @@ -92,7 +92,7 @@ void SnapRealm::build_snap_set(set &s, snapid_t first, snapid_t last) */ const set& SnapRealm::get_snaps() { - if (cached_snaps.empty()) { + if (cached_snaps.empty() || cached_snaps_seq < seq) { cached_snaps.clear(); cached_snap_vec.clear(); build_snap_set(cached_snaps, 0, CEPH_NOSNAP); @@ -111,9 +111,9 @@ const set& SnapRealm::get_snaps() const vector& SnapRealm::get_snap_vector() { - if (cached_snap_vec.empty()) { - get_snaps(); + get_snaps(); + if (cached_snap_vec.empty()) { cached_snap_vec.resize(cached_snaps.size()); unsigned i = 0; for (set::reverse_iterator p = cached_snaps.rbegin(); diff --git a/src/mds/snap.h b/src/mds/snap.h index e8509fe031dfc..1e8ad60eea72e 100644 --- a/src/mds/snap.h +++ b/src/mds/snap.h @@ -107,6 +107,7 @@ struct SnapRealm { map open_past_parents; // these are explicitly pinned. // caches? + snapid_t cached_snaps_seq; set cached_snaps; vector cached_snap_vec; -- 2.39.5