From 45312902f26ec1cda8318486a3258f6000571eac Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Wed, 15 Nov 2023 13:45:58 +0000 Subject: [PATCH] crimson/osd/pg: introduce clear_log_entry_maps() Signed-off-by: Matan Breizman --- src/crimson/osd/pg.cc | 8 ++++++++ src/crimson/osd/pg.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index c61fd541e9d37..c8208bedb21e3 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -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 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); diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index 711270e4c5e79..056d5e9e1c003 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -332,6 +332,8 @@ public: void on_removal(ceph::os::Transaction &t) final; + void clear_log_entry_maps(); + std::pair do_delete_work(ceph::os::Transaction &t, ghobject_t _next) final; -- 2.39.5