return;
}
- // when we're starting a scrub, we need to determine which type of scrub to do
if (!scrubber.active) {
- OSDMapRef curmap = osd->get_osdmap();
assert(backfill_targets.empty());
- for (unsigned i=0; i<acting.size(); i++) {
- if (acting[i] == pg_whoami.osd)
- continue;
- if (acting[i] == CRUSH_ITEM_NONE)
- continue;
- ConnectionRef con = osd->get_con_osd_cluster(acting[i], get_osdmap()->get_epoch());
- if (!con)
- continue;
- if (!con->has_feature(CEPH_FEATURE_CHUNKY_SCRUB)) {
- dout(20) << "OSD " << acting[i]
- << " does not support chunky scrubs, falling back to classic"
- << dendl;
- assert(0 == "Running incompatible OSD");
- break;
- }
- }
scrubber.deep = state_test(PG_STATE_DEEP_SCRUB);