]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.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, 16 Mar 2022 08:45:26 +0000 (08:45 +0000)
commit2730cada57787f4dadb37b60213d45aa86641429
treede1b03155110f3bd14080d246b06a0b2870d8490
parent179a7bca8a84771b0dde09e26f7a2146a985df90
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>
(cherry picked from commit c257c2e108decb21f479d005e792fccc58a778fa)
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