]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd/pg: introduce clear_log_entry_maps()
authorMatan Breizman <mbreizma@redhat.com>
Wed, 15 Nov 2023 13:45:58 +0000 (13:45 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Sun, 19 Nov 2023 12:31:39 +0000 (12:31 +0000)
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/osd/pg.cc
src/crimson/osd/pg.h

index c61fd541e9d3721372b3a28dca7493fc34e47b7d..c8208bedb21e3e0cf9d5d90ef4595da08e52cf2c 100644 (file)
@@ -318,6 +318,7 @@ unsigned PG::get_target_pg_log_entries() const
 }
 
 void PG::on_removal(ceph::os::Transaction &t) {
+  clear_log_entry_maps();
   t.register_on_commit(
     new LambdaContext(
       [this](int r) {
@@ -328,6 +329,12 @@ void PG::on_removal(ceph::os::Transaction &t) {
   }));
 }
 
+void PG::clear_log_entry_maps()
+{
+  log_entry_update_waiting_on.clear();
+  log_entry_version.clear();
+}
+
 void PG::on_activate(interval_set<snapid_t> snaps)
 {
   logger().debug("{}: {} snaps={}", *this, __func__, snaps);
@@ -1508,6 +1515,7 @@ seastar::future<> PG::stop()
 
 void PG::on_change(ceph::os::Transaction &t) {
   logger().debug("{} {}:", *this, __func__);
+  clear_log_entry_maps();
   context_registry_on_change();
   obc_loader.notify_on_change(is_primary());
   recovery_backend->on_peering_interval_change(t);
index 711270e4c5e79c06f5bfd3985e8ea1ae95f3543b..056d5e9e1c0036c5319bedf7fa51ae520cb8fcc1 100644 (file)
@@ -332,6 +332,8 @@ public:
 
   void on_removal(ceph::os::Transaction &t) final;
 
+  void clear_log_entry_maps();
+
   std::pair<ghobject_t, bool>
   do_delete_work(ceph::os::Transaction &t, ghobject_t _next) final;