summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatan Breizman <mbreizma@redhat.com>2024-09-12 12:45:55 +0200
committerGitHub <noreply@github.com>2024-09-12 12:45:55 +0200
commitb06601306bb8188685cebe20c5db98b2ad54f13b (patch)
tree04977dd9a502043d4b7f59d40014f0f8b61ff30e
parentMerge pull request #59652 from xxhdx1985126/wip-67945 (diff)
parentcrimson/osd/pg: clear backfill_state when the PG goes clean (diff)
downloadceph-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.cc1
-rw-r--r--src/crimson/osd/pg_recovery.cc6
-rw-r--r--src/crimson/osd/pg_recovery.h1
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(