From: Xuehan Xu Date: Mon, 11 Nov 2024 08:19:40 +0000 (+0800) Subject: crimson/osd/pg_recovery: avoid repeatedly updating the peering missing X-Git-Tag: v20.0.0~99^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=df83836ca92eb19fb1478bb72d4b862f32c7fb69;p=ceph.git crimson/osd/pg_recovery: avoid repeatedly updating the peering missing set for the same object Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index 5c1bd2b09ccc..0a98c561b2d9 100644 --- a/src/crimson/osd/pg_recovery.cc +++ b/src/crimson/osd/pg_recovery.cc @@ -531,10 +531,10 @@ void PGRecovery::enqueue_push( { logger().info("{}: obj={} v={} peers={}", __func__, obj, v, peers); auto &peering_state = pg->get_peering_state(); - peering_state.prepare_backfill_for_missing(obj, v, peers); auto [recovering, added] = pg->get_recovery_backend()->add_recovering(obj); if (!added) return; + peering_state.prepare_backfill_for_missing(obj, v, peers); std::ignore = pg->get_recovery_backend()->recover_object(obj, v).\ handle_exception_interruptible([] (auto) { ceph_abort_msg("got exception on backfill's push");