case PG::Scrubber::INACTIVE:
dout(10) << "scrub start" << dendl;
- scrubber.cleaned_meta_map.reset_bitwise(get_sort_bitwise());
-
publish_stats_to_osd();
scrubber.epoch_start = info.history.same_interval_since;
scrubber.active = true;
}
}
- ScrubMap for_meta_scrub(get_sort_bitwise());
+ ScrubMap for_meta_scrub;
if (scrubber.end.is_max() ||
scrubber.cleaned_meta_map.objects.empty()) {
scrubber.cleaned_meta_map.swap(for_meta_scrub);
};
WRITE_CLASS_ENCODER(object)
- bool bitwise; // ephemeral, not encoded
map<hobject_t,object> objects;
eversion_t valid_through;
eversion_t incr_since;
- ScrubMap() : bitwise(true) {}
- ScrubMap(bool bitwise)
- : bitwise(bitwise) {}
-
void merge_incr(const ScrubMap &l);
void insert(const ScrubMap &r) {
objects.insert(r.objects.begin(), r.objects.end());
void encode(bufferlist& bl) const;
void decode(bufferlist::iterator& bl, int64_t pool=-1);
void dump(Formatter *f) const;
- void reset_bitwise(bool new_bitwise) {
- if (bitwise == new_bitwise)
- return;
- map<hobject_t, object> new_objects(
- objects.begin(),
- objects.end());
- ::swap(new_objects, objects);
- bitwise = new_bitwise;
- }
static void generate_test_instances(list<ScrubMap*>& o);
};
WRITE_CLASS_ENCODER(ScrubMap::object)