]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: internalize the SnapMapper's dependency on OmapIterator
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 26 Nov 2024 20:33:56 +0000 (20:33 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 4 Apr 2025 18:21:54 +0000 (18:21 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/osd/SnapMapper.cc
src/osd/SnapMapper.h

index 968c0436ef4f5a0dbdf457169bf84f8f2de36f2d..265b2a0c7f5a79753c0110d2528b93a4131f3182 100644 (file)
@@ -925,7 +925,7 @@ void SnapMapper::record_purged_snaps(
 
 
 #ifndef WITH_CRIMSON
-bool SnapMapper::Scrubber::_parse_p()
+bool SnapMapper::Scrubber::_parse_p(ObjectMap::ObjectMapIterator& psit)
 {
   if (!psit->valid()) {
     pool = -1;
@@ -946,7 +946,7 @@ bool SnapMapper::Scrubber::_parse_p()
   return true;
 }
 
-bool SnapMapper::Scrubber::_parse_m()
+bool SnapMapper::Scrubber::_parse_m(ObjectMap::ObjectMapIterator& mapit)
 {
   if (!mapit->valid()) {
     return false;
@@ -981,19 +981,22 @@ void SnapMapper::Scrubber::run()
 {
   dout(10) << __func__ << dendl;
 
+  ObjectMap::ObjectMapIterator psit;
+  ObjectMap::ObjectMapIterator mapit;
+
   psit = store->get_omap_iterator(ch, purged_snaps_hoid);
   psit->upper_bound(PURGED_SNAP_PREFIX);
-  _parse_p();
+  _parse_p(psit);
 
   mapit = store->get_omap_iterator(ch, mapping_hoid);
   mapit->upper_bound(MAPPING_PREFIX);
 
-  while (_parse_m()) {
+  while (_parse_m(mapit)) {
     // advance to next purged_snaps range?
     while (pool >= 0 &&
           (mapping.hoid.pool > pool ||
            (mapping.hoid.pool == pool && mapping.snap >= end))) {
-      _parse_p();
+      _parse_p(psit);
     }
     if (pool < 0) {
       dout(10) << __func__ << " passed final purged_snaps interval, rest ok"
index 455192abf1aabf71094c932be1d82f9b85dcf622..9f40226c7ff311c6b6a231ffa47a45b414131837 100644 (file)
@@ -183,17 +183,15 @@ public:
     ghobject_t mapping_hoid;
     ghobject_t purged_snaps_hoid;
 
-    ObjectMap::ObjectMapIterator psit;
     int64_t pool;
     snapid_t begin, end;
 
-    bool _parse_p();   ///< advance the purged_snaps pointer
+    bool _parse_p(ObjectMap::ObjectMapIterator& psit);   ///< advance the purged_snaps pointer
 
-    ObjectMap::ObjectMapIterator mapit;
     Mapping mapping;
     shard_id_t shard;
 
-    bool _parse_m();   ///< advance the (object) mapper pointer
+    bool _parse_m(ObjectMap::ObjectMapIterator& mapit);   ///< advance the (object) mapper pointer
 
     std::vector<std::tuple<int64_t, snapid_t, uint32_t, shard_id_t>> stray;