From b1d538b293df8b38d7fc861c1ef8218438072e13 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 26 Nov 2024 20:33:56 +0000 Subject: [PATCH] osd: internalize the SnapMapper's dependency on OmapIterator Signed-off-by: Radoslaw Zarzynski --- src/osd/SnapMapper.cc | 13 ++++++++----- src/osd/SnapMapper.h | 6 ++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/osd/SnapMapper.cc b/src/osd/SnapMapper.cc index 968c0436ef4..265b2a0c7f5 100644 --- a/src/osd/SnapMapper.cc +++ b/src/osd/SnapMapper.cc @@ -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" diff --git a/src/osd/SnapMapper.h b/src/osd/SnapMapper.h index 455192abf1a..9f40226c7ff 100644 --- a/src/osd/SnapMapper.h +++ b/src/osd/SnapMapper.h @@ -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> stray; -- 2.39.5