ENCODE_START(1, 1, bl);
encode(redirect_locator, bl);
encode(redirect_object, bl);
- encode(osd_instructions, bl);
+ // legacy of the removed osd_instructions member
+ encode((uint32_t)0, bl);
ENCODE_FINISH(bl);
}
void request_redirect_t::decode(bufferlist::const_iterator& bl)
{
DECODE_START(1, bl);
+ uint32_t legacy_osd_instructions_len;
decode(redirect_locator, bl);
decode(redirect_object, bl);
- decode(osd_instructions, bl);
+ decode(legacy_osd_instructions_len, bl);
+ if (legacy_osd_instructions_len) {
+ bl.advance(legacy_osd_instructions_len);
+ }
DECODE_FINISH(bl);
}
private:
object_locator_t redirect_locator; ///< this is authoritative
string redirect_object; ///< If non-empty, the request goes to this object name
- bufferlist osd_instructions; ///< a bufferlist for the OSDs, passed but not interpreted by clients
friend ostream& operator<<(ostream& out, const request_redirect_t& redir);
public:
const string& robj) :
redirect_locator(orig), redirect_object(robj) {}
- const bufferlist& get_instructions() { return osd_instructions; }
-
bool empty() const { return redirect_locator.empty() &&
redirect_object.empty(); }