diff options
-rw-r--r-- | src/common/TrackedOp.h | 14 | ||||
-rw-r--r-- | src/osd/OSD.cc | 2 | ||||
-rw-r--r-- | src/osd/OpRequest.h | 5 |
3 files changed, 11 insertions, 10 deletions
diff --git a/src/common/TrackedOp.h b/src/common/TrackedOp.h index 3344301c7c8..c098c4b0170 100644 --- a/src/common/TrackedOp.h +++ b/src/common/TrackedOp.h @@ -91,19 +91,19 @@ public: assert(ops_in_flight.empty()); } - template <typename T, typename TRef> - TRef create_request(Message *ref) + template <typename T> + typename T::Ref create_request(Message *ref) { - TRef retval(new T(ref, this), - RemoveOnDelete(this)); - + typename T::Ref retval(new T(ref, this), + RemoveOnDelete(this)); + _mark_event(retval.get(), "header_read", ref->get_recv_stamp()); _mark_event(retval.get(), "throttled", ref->get_throttle_stamp()); _mark_event(retval.get(), "all_read", ref->get_recv_complete_stamp()); _mark_event(retval.get(), "dispatched", ref->get_dispatch_stamp()); - + retval->init_from_message(); - + return retval; } }; diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 2e933b38bf0..8150d9b3cd9 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4724,7 +4724,7 @@ void OSD::_dispatch(Message *m) default: { - OpRequestRef op = op_tracker.create_request<OpRequest, OpRequestRef>(m); + OpRequestRef op = op_tracker.create_request<OpRequest>(m); op->mark_event("waiting_for_osdmap"); // no map? starting up? if (!osdmap) { diff --git a/src/osd/OpRequest.h b/src/osd/OpRequest.h index 88c4e7d4bc2..6131aae0d2d 100644 --- a/src/osd/OpRequest.h +++ b/src/osd/OpRequest.h @@ -143,9 +143,10 @@ public: } void init_from_message(); -}; -typedef std::tr1::shared_ptr<OpRequest> OpRequestRef; + typedef std::tr1::shared_ptr<OpRequest> Ref; +}; +typedef OpRequest::Ref OpRequestRef; #endif /* OPREQUEST_H_ */ |