vector<int> acting, up;
int up_primary;
int primary;
+ pg_t pgid = pg->info.pgid.pgid;
+ if (p.same_interval_since && last_map->get_pools().count(pgid.pool()))
+ pgid = pgid.get_ancestor(last_map->get_pg_num(pgid.pool()));
cur_map->pg_to_up_acting_osds(
- pg->info.pgid.pgid, &up, &up_primary, &acting, &primary);
+ pgid, &up, &up_primary, &acting, &primary);
if (p.same_interval_since == 0) {
dout(10) << __func__ << " epoch " << cur_epoch << " pg " << pg->info.pgid
p.same_interval_since,
pg->info.history.last_epoch_clean,
cur_map, last_map,
- pg->info.pgid.pgid,
+ pgid,
&pg->past_intervals,
&debug);
if (new_interval) {
cur_map = osd->get_map(cur_epoch);
pg_t pgid = get_pgid().pgid;
- if (cur_map->get_pools().count(pgid.pool()))
- pgid = pgid.get_ancestor(cur_map->get_pg_num(pgid.pool()));
+ if (last_map->get_pools().count(pgid.pool()))
+ pgid = pgid.get_ancestor(last_map->get_pg_num(pgid.pool()));
cur_map->pg_to_up_acting_osds(pgid, &up, &up_primary, &acting, &primary);
std::stringstream debug;