]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd/scrub: modify "classic" OSD scrub state-machine to support Crimson
authorRonen Friedman <rfriedma@redhat.com>
Tue, 30 Mar 2021 13:39:19 +0000 (16:39 +0300)
committerRonen Friedman <rfriedma@redhat.com>
Wed, 2 Jun 2021 17:33:32 +0000 (20:33 +0300)
commitc257c2e108decb21f479d005e792fccc58a778fa
tree1361ef990e3d7b4be04d12836cd03492f49caede
parent5871240363e9912ece5e9bc9a02673ba6ba5ef8d
osd/scrub: modify "classic" OSD scrub state-machine to support Crimson

As some scrub-related functions are asynchronous in Crimson,
scrub states that call those functions cannot simply perform a
'post' or state-transition sequentially. The called operations
must arrange for a state-machine event to be sent upon completion.

Specifically, the following are now handled (on the FSM side) as async:
 - building scrub maps
 - comparing the scrub maps (and the rest of "what we
   do after a chunk is  handled")

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
13 files changed:
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PG.cc
src/osd/PG.h
src/osd/PeeringState.cc
src/osd/pg_scrubber.cc
src/osd/pg_scrubber.h
src/osd/scheduler/OpSchedulerItem.cc
src/osd/scheduler/OpSchedulerItem.h
src/osd/scrub_machine.cc
src/osd/scrub_machine.h
src/osd/scrub_machine_lstnr.h
src/osd/scrubber_common.h