]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd: do not refence PGLog in BackfillState.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Mon, 13 Jul 2020 12:43:33 +0000 (14:43 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 1 Dec 2020 12:22:15 +0000 (13:22 +0100)
This commit makes the backfill code unware about pg log
implementation details. The benefit is easier unit testing.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/backfill_facades.h
src/crimson/osd/backfill_state.cc

index ddebfced603686578738fc20a53004fd60af6d8f..21b18a8b3b05f4b613becd95d7b39d8ac919e678 100644 (file)
@@ -35,9 +35,12 @@ struct BackfillState::PeeringFacade {
     return peering_state.get_info().log_tail;
   }
 
-  decltype(auto) get_pg_log() const {
-    return peering_state.get_pg_log();
+  template <class... Args>
+  void scan_log_after(Args&&... args) const {
+    peering_state.get_pg_log().get_log().scan_log_after(
+      std::forward<Args>(args)...);
   }
+
   bool is_backfill_target(pg_shard_t peer) const {
     return peering_state.is_backfill_target(peer);
   }
index 3d1191ec9c043739136576c662934e6e2644181d..3a173a757589c78aa7693f00ce99193283e41251 100644 (file)
@@ -127,7 +127,7 @@ void BackfillState::Enqueuing::maybe_update_range()
                    primary_bi.version,
                    pg().get_projected_last_update());
     logger().debug("{}: scanning pg log first", __func__);
-    peering_state().get_pg_log().get_log().scan_log_after(primary_bi.version,
+    peering_state().scan_log_after(primary_bi.version,
       [&](const pg_log_entry_t& e) {
         logger().debug("maybe_update_range(lambda): updating from version {}",
                        e.version);