kernel client
- msg layer (patience)
- mds client
- - handle map changes (check for mds failure)
-- mount
- - get handle on root mount point
+ - examine new mds maps to kick requests for failed nodes...
- osd client
+ - async (caching) mode
+ - sync mode (write-through)
+ - capability changes (flush)
+ - osd ack vs commit handling. hmm!
+ - handle map changes (resubmit ops)
- mon client
- - work out message resend logic..
+ - work out message resend logic..?
osdmon
}
virtual void encode_payload() {
- ::_encode(st, payload);
- ::_encode(attrset, payload);
- env.data_off = st.offset;
+ ::_encode(head, payload);
+ env.data_off = head.offset;
}
- virtual char *get_type_name() { return "osd_op"; }
+ const char *get_type_name() { return "osd_op"; }
void print(ostream& out) {
- out << "osd_op(" << st.reqid
- << " " << get_opname(st.op)
- << " " << st.oid;
- if (st.length) out << " " << st.offset << "~" << st.length;
- if (st.retry_attempt) out << " RETRY";
+ out << "osd_op(" << get_reqid()
+ << " " << get_opname(head.op)
+ << " " << head.oid;
+ if (head.length) out << " " << head.offset << "~" << head.length;
+ if (is_retry_attempt()) out << " RETRY";
out << ")";
}
};
// marshalling
virtual void decode_payload() {
int off = 0;
- ::_decode(st, payload, off);
- ::_decode(attrset, payload, off);
+ ::_decode(head, payload, off);
}
virtual void encode_payload() {
- ::_encode(st, payload);
- ::_encode(attrset, payload);
- env.data_off = st.offset;
+ ::_encode(head, payload);
+ env.data_off = head.offset;
}
- virtual char *get_type_name() { return "osd_op_reply"; }
+ const char *get_type_name() { return "osd_op_reply"; }
void print(ostream& out) {
- out << "osd_op_reply(" << st.reqid
- << " " << MOSDOp::get_opname(st.op)
- << " " << st.oid;
- if (st.length) out << " " << st.offset << "~" << st.length;
- if (st.op >= 10) {
- if (st.commit)
+ out << "osd_op_reply(" << get_tid()
+ << " " << MOSDOp::get_opname(head.op)
+ << " " << head.oid;
+ if (head.length) out << " " << head.offset << "~" << head.length;
+ if (head.op >= 10) {
+ if (is_safe())
out << " commit";
else
out << " ack";