if (!scrubber.active) {
dout(10) << "scrub start" << dendl;
scrubber.active = true;
+ scrubber.classic = true;
update_stats();
scrubber.received_maps.clear();
block_writes(false), active(false), queue_snap_trim(false),
waiting_on(0), errors(0), fixed(0), active_rep_scrub(0),
must_scrub(false), must_deep_scrub(false), must_repair(false),
+ classic(false),
finalizing(false), is_chunky(false), state(INACTIVE),
deep(false)
{
map<hobject_t, pair<ScrubMap::object, int> > authoritative;
// classic scrub
+ bool classic;
bool finalizing;
// chunky scrub
// clear all state
void reset() {
+ classic = false;
finalizing = false;
block_writes = false;
active = false;
void ReplicatedPG::calc_trim_to()
{
- if (!is_degraded() && !is_scrubbing() && is_clean()) {
+ if (!is_degraded() && is_clean() && !(is_scrubbing() && scrubber.classic)) {
if (min_last_complete_ondisk != eversion_t() &&
min_last_complete_ondisk != pg_trim_to &&
log.approx_size() > g_conf->osd_min_pg_log_entries) {