}
// Fields decoded in partial decoding
- const pg_t& get_pg() const {
+ pg_t get_pg() const {
assert(!partial_decode_needed);
return pgid;
}
+ pg_t get_raw_pg() const {
+ assert(!partial_decode_needed);
+ return pg_t(hobj.get_hash(), hobj.pool);
+ }
epoch_t get_map_epoch() const {
assert(!partial_decode_needed);
return osdmap_epoch;
<< m->get_map_epoch() << ", dropping" << dendl;
return;
}
- pg_t _pgid = m->get_pg();
+ pg_t _pgid = m->get_raw_pg();
spg_t pgid;
if ((m->get_flags() & CEPH_OSD_FLAG_PGOP) == 0)
_pgid = opmap->raw_pg_to_pg(_pgid);
dout(7) << *pg << " misdirected op in " << m->get_map_epoch() << dendl;
clog->warn() << m->get_source_inst() << " misdirected " << m->get_reqid()
- << " pg " << m->get_pg()
+ << " pg " << m->get_raw_pg()
<< " to osd." << whoami
<< " not " << pg->acting
<< " in e" << m->get_map_epoch() << "/" << osdmap->get_epoch()
}
// calc actual pgid
- pg_t _pgid = m->get_pg();
+ pg_t _pgid = m->get_raw_pg();
int64_t pool = _pgid.pool();
if ((m->get_flags() & CEPH_OSD_FLAG_PGOP) == 0 &&
if (!send_map->have_pg_pool(pgid.pool())) {
dout(7) << "dropping request; pool did not exist" << dendl;
clog->warn() << m->get_source_inst() << " invalid " << m->get_reqid()
- << " pg " << m->get_pg()
+ << " pg " << m->get_raw_pg()
<< " to osd." << whoami
<< " in e" << osdmap->get_epoch()
<< ", client e" << m->get_map_epoch()
if (!send_map->osd_is_valid_op_target(pgid.pgid, whoami)) {
dout(7) << "we are invalid target" << dendl;
clog->warn() << m->get_source_inst() << " misdirected " << m->get_reqid()
- << " pg " << m->get_pg()
+ << " pg " << m->get_raw_pg()
<< " to osd." << whoami
<< " in e" << osdmap->get_epoch()
<< ", client e" << m->get_map_epoch()