From 7cdc57c47c3e771b0638b4922b909a48292e15c3 Mon Sep 17 00:00:00 2001 From: Xuehan Xu Date: Thu, 28 Aug 2025 16:11:32 +0800 Subject: [PATCH] crimson/osd/osd_operations/client_request: rely on the checks in PG::do_recover_missing() to determine whether to recover clone objects PeeringState::is_missing_any_head_or_clone_of() only checks whether the head/clone object is missing on the primary. Fixes: https://tracker.ceph.com/issues/72763 Signed-off-by: Xuehan Xu --- src/crimson/osd/osd_operations/client_request.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index 3dd27ff55f7..5c1ab0fa4a7 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -361,8 +361,7 @@ ClientRequest::process_op( } std::set snaps = snaps_need_to_recover(); - if (!snaps.empty() && - pg->is_missing_head_and_clones(m->get_hobj().get_head())) { + if (!snaps.empty()) { co_await recover_missing_snaps(pg, snaps); } } -- 2.39.5