auto pg_epoch = next_map->get_epoch();
DEBUG("{}: epoch: {}", *this, pg_epoch);
+ unsigned new_pg_num = next_map->get_pg_num(pg->get_pgid().pool());
+ pg->update_snap_mapper_bits(pg->get_pgid().get_split_bits(new_pg_num));
+
co_await seastar::coroutine::parallel_for_each(split_children, [this, &next_map,
pg_epoch, FNAME] (auto child_pgid) -> seastar::future<> {
children_pgids.insert(child_pgid);
void handle_activate_map(PeeringCtx &rctx);
void handle_initialize(PeeringCtx &rctx);
+ void update_snap_mapper_bits(uint32_t bits) {
+ snap_mapper.update_bits(bits);
+ }
+
void start_split_stats(const std::set<spg_t>& childpgs, std::vector<object_stat_sum_t> *out) {
peering_state.start_split_stats(childpgs, out);
}
void split_into(pg_t child_pgid, Ref<PG> child, unsigned split_bits) {
peering_state.split_into(child_pgid, &child->peering_state, split_bits);
+ child->update_snap_mapper_bits(split_bits);
child->snap_trimq = snap_trimq;
}