diff options
author | Matan Breizman <mbreizma@redhat.com> | 2024-09-12 12:45:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-12 12:45:55 +0200 |
commit | b06601306bb8188685cebe20c5db98b2ad54f13b (patch) | |
tree | 04977dd9a502043d4b7f59d40014f0f8b61ff30e | |
parent | Merge pull request #59652 from xxhdx1985126/wip-67945 (diff) | |
parent | crimson/osd/pg: clear backfill_state when the PG goes clean (diff) | |
download | ceph-b06601306bb8188685cebe20c5db98b2ad54f13b.tar.xz ceph-b06601306bb8188685cebe20c5db98b2ad54f13b.zip |
Merge pull request #59456 from xxhdx1985126/wip-67731
crimson/osd/pg: clear backfill_state when the PG goes clean
Reviewed-by: Matan Breizman <mbreizma@redhat.com>
-rw-r--r-- | src/crimson/osd/pg.cc | 1 | ||||
-rw-r--r-- | src/crimson/osd/pg_recovery.cc | 6 | ||||
-rw-r--r-- | src/crimson/osd/pg_recovery.h | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 02815768551..644cc84513d 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -515,6 +515,7 @@ PG::do_delete_work(ceph::os::Transaction &t, ghobject_t _next) Context *PG::on_clean() { + recovery_handler->on_pg_clean(); scrubber.on_primary_active_clean(); return nullptr; } diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index 399b7ad27da..4f874d526b3 100644 --- a/src/crimson/osd/pg_recovery.cc +++ b/src/crimson/osd/pg_recovery.cc @@ -611,9 +611,13 @@ bool PGRecovery::budget_available() const return true; } -void PGRecovery::backfilled() +void PGRecovery::on_pg_clean() { backfill_state.reset(); +} + +void PGRecovery::backfilled() +{ using LocalPeeringEvent = crimson::osd::LocalPeeringEvent; std::ignore = pg->get_shard_services().start_operation<LocalPeeringEvent>( static_cast<crimson::osd::PG*>(pg), diff --git a/src/crimson/osd/pg_recovery.h b/src/crimson/osd/pg_recovery.h index 5afd6a3554c..6cd29c3dc52 100644 --- a/src/crimson/osd/pg_recovery.h +++ b/src/crimson/osd/pg_recovery.h @@ -44,6 +44,7 @@ public: } seastar::future<> stop() { return seastar::now(); } + void on_pg_clean(); private: PGRecoveryListener* pg; size_t start_primary_recovery_ops( |