From 6bf1965cf1d30475add6cd0a4d6edb2a3a8720f7 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Wed, 27 Mar 2024 01:39:17 +0000 Subject: [PATCH] crimson/.../scrub_events: convert ScrubFindRange::run to a coroutine Signed-off-by: Samuel Just (cherry picked from commit 5b0416ae100443f43361e1308e2d28e2763ba725) --- .../osd/osd_operations/scrub_events.cc | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/crimson/osd/osd_operations/scrub_events.cc b/src/crimson/osd/osd_operations/scrub_events.cc index dbe22a086bb..feffce8c05f 100644 --- a/src/crimson/osd/osd_operations/scrub_events.cc +++ b/src/crimson/osd/osd_operations/scrub_events.cc @@ -88,24 +88,21 @@ ScrubFindRange::ifut<> ScrubFindRange::run(PG &pg) { LOG_PREFIX(ScrubFindRange::run); using crimson::common::local_conf; - return interruptor::make_interruptible( + auto [_, next] = co_await interruptor::make_interruptible( pg.shard_services.get_store().list_objects( pg.get_collection_ref(), ghobject_t(begin, ghobject_t::NO_GEN, pg.get_pgid().shard), ghobject_t::get_max(), local_conf().get_val("osd_scrub_chunk_max") - ) - ).then_interruptible([FNAME, this, &pg](auto ret) { - auto &[_, next] = ret; + )); - // We rely on seeing an entire set of snapshots in a single chunk - auto end = next.hobj.get_max_object_boundary(); + // We rely on seeing an entire set of snapshots in a single chunk + auto end = next.hobj.get_max_object_boundary(); - DEBUGDPP("got next.hobj: {}, returning begin, end: {}, {}", - pg, next.hobj, begin, end); - pg.scrubber.machine.process_event( - scrub::ScrubContext::request_range_complete_t{begin, end}); - }); + DEBUGDPP("got next.hobj: {}, returning begin, end: {}, {}", + pg, next.hobj, begin, end); + pg.scrubber.machine.process_event( + scrub::ScrubContext::request_range_complete_t{begin, end}); } template class ScrubAsyncOpT; -- 2.39.5