From: Samuel Just Date: Wed, 27 Mar 2024 01:39:17 +0000 (+0000) Subject: crimson/.../scrub_events: convert ScrubFindRange::run to a coroutine X-Git-Tag: testing/wip-batrick-testing-20240411.154038~99^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=5b0416ae100443f43361e1308e2d28e2763ba725;p=ceph-ci.git crimson/.../scrub_events: convert ScrubFindRange::run to a coroutine Signed-off-by: Samuel Just --- 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;