CEPH_OSD_FLAG_READ = 0x0010, /* op may read */
CEPH_OSD_FLAG_WRITE = 0x0020, /* op may write */
CEPH_OSD_FLAG_ORDERSNAP = 0x0040, /* EOLDSNAP if snapc is out of order */
- CEPH_OSD_FLAG_PEERSTAT = 0x0080, /* msg includes osd_peer_stat */
+ CEPH_OSD_FLAG_PEERSTAT_OLD = 0x0080, /* DEPRECATED msg includes osd_peer_stat */
CEPH_OSD_FLAG_BALANCE_READS = 0x0100,
CEPH_OSD_FLAG_PARALLELEXEC = 0x0200, /* execute op in parallel */
CEPH_OSD_FLAG_PGOP = 0x0400, /* pg op, no object */
snapid_t snap_seq;
vector<snapid_t> snaps;
- osd_peer_stat_t peer_stat;
public:
int rmw_flags;
bool may_exec() { assert(rmw_flags); return rmw_flags & (CEPH_OSD_FLAG_EXEC | CEPH_OSD_FLAG_EXEC_PUBLIC); }
bool require_exec_caps() { assert(rmw_flags); return rmw_flags & CEPH_OSD_FLAG_EXEC; }
- void set_peer_stat(const osd_peer_stat_t& st) {
- peer_stat = st;
- flags |= CEPH_OSD_FLAG_PEERSTAT;
- }
- const osd_peer_stat_t& get_peer_stat() {
- assert(flags & CEPH_OSD_FLAG_PEERSTAT);
- return peer_stat;
- }
-
MOSDOp()
: Message(CEPH_MSG_OSD_OP, HEAD_VERSION, COMPAT_VERSION) { }
MOSDOp(int inc, long tid,
::encode_nohead(oid.name, payload);
::encode_nohead(snaps, payload);
- if (flags & CEPH_OSD_FLAG_PEERSTAT)
- ::encode(peer_stat, payload);
} else {
::encode(client_inc, payload);
::encode(osdmap_epoch, payload);
::encode(snap_seq, payload);
::encode(snaps, payload);
- if (flags & CEPH_OSD_FLAG_PEERSTAT)
- ::encode(peer_stat, payload);
-
::encode(retry_attempt, payload);
}
}
decode_nohead(oid_len, oid.name, p);
decode_nohead(num_snaps, snaps, p);
- if (flags & CEPH_OSD_FLAG_PEERSTAT)
- ::decode(peer_stat, p);
-
// recalculate pgid hash value
pgid.set_ps(ceph_str_hash(CEPH_STR_HASH_RJENKINS,
oid.name.c_str(),
::decode(snap_seq, p);
::decode(snaps, p);
- if (flags & CEPH_OSD_FLAG_PEERSTAT)
- ::decode(peer_stat, p);
-
if (header.version >= 4)
::decode(retry_attempt, p);
else