class MOSDOpReply : public Message {
- static const int HEAD_VERSION = 5;
+ static const int HEAD_VERSION = 6;
static const int COMPAT_VERSION = 2;
object_t oid;
version_t user_version;
epoch_t osdmap_epoch;
int32_t retry_attempt;
+ request_redirect_t redirect;
public:
object_t get_oid() const { return oid; }
bad_replay_version = v;
}
+ void set_redirect(const request_redirect_t& redir) { redirect = redir; }
+ const request_redirect_t& get_redirect() const { return redirect; }
+ bool is_redirect_reply() const { return !redirect.empty(); }
+
void add_flags(int f) { flags |= f; }
void claim_op_out_data(vector<OSDOp>& o) {
::encode(replay_version, payload);
::encode(user_version, payload);
+ ::encode(redirect, payload);
}
}
virtual void decode_payload() {
replay_version = bad_replay_version;
user_version = replay_version.version;
}
+
+ if (header.version >= 6)
+ ::decode(redirect, p);
}
}
char buf[80];
out << " (" << strerror_r(-get_result(), buf, sizeof(buf)) << ")";
}
+ if (is_redirect_reply()) {
+ out << " redirect: { " << redirect << " }";
+ }
out << ")";
}