queue_scrub_event_msg<PGScrubDigestUpdate>(pg, with_priority);
}
-void OSDService::queue_scrub_got_local_map(PG* pg, Scrub::scrub_prio_t with_priority)
-{
- // Resulting scrub event: 'IntLocalMapDone'
- queue_scrub_event_msg<PGScrubGotLocalMap>(pg, with_priority);
-}
-
void OSDService::queue_scrub_got_repl_maps(PG* pg, Scrub::scrub_prio_t with_priority)
{
// Resulting scrub event: 'GotReplicas'
/// Signals that all write OPs are done
void queue_scrub_digest_update(PG* pg, Scrub::scrub_prio_t with_priority);
- /// Signals that the the local (Primary's) scrub map is ready
- void queue_scrub_got_local_map(PG* pg, Scrub::scrub_prio_t with_priority);
-
/// Signals that we (the Primary) got all waited-for scrub-maps from our replicas
void queue_scrub_got_repl_maps(PG* pg, Scrub::scrub_prio_t with_priority);
forward_scrub_event(&ScrubPgIF::digest_update_notification, queued, "DigestUpdate");
}
- void scrub_send_local_map_ready(epoch_t queued, ThreadPool::TPHandle& handle)
- {
- forward_scrub_event(&ScrubPgIF::send_local_map_done, queued, "IntLocalMapDone");
- }
-
void scrub_send_replmaps_ready(epoch_t queued, ThreadPool::TPHandle& handle)
{
forward_scrub_event(&ScrubPgIF::send_replica_maps_ready, queued, "GotReplicas");
pg->unlock();
}
-void PGScrubGotLocalMap::run(OSD* osd,
- OSDShard* sdata,
- PGRef& pg,
- ThreadPool::TPHandle& handle)
-{
- pg->scrub_send_local_map_ready(epoch_queued, handle);
- pg->unlock();
-}
-
void PGScrubGotReplMaps::run(OSD* osd,
OSDShard* sdata,
PGRef& pg,
void run(OSD* osd, OSDShard* sdata, PGRef& pg, ThreadPool::TPHandle& handle) final;
};
-class PGScrubGotLocalMap : public PGScrubItem {
- public:
- PGScrubGotLocalMap(spg_t pg, epoch_t epoch_queued)
- : PGScrubItem{pg, epoch_queued, "PGScrubGotLocalMap"}
- {}
- void run(OSD* osd, OSDShard* sdata, PGRef& pg, ThreadPool::TPHandle& handle) final;
-};
-
class PGScrubGotReplMaps : public PGScrubItem {
public:
PGScrubGotReplMaps(spg_t pg, epoch_t epoch_queued)