From: Sage Weil Date: Tue, 28 Feb 2017 02:13:58 +0000 (-0600) Subject: osd: define min_epoch for fast dispatch messages X-Git-Tag: v12.0.3~80^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=52cb5360777918e907e3ab821c37c5741ed0be31;p=ceph.git osd: define min_epoch for fast dispatch messages For now, default to the sent_epoch (latest). Signed-off-by: Sage Weil --- diff --git a/src/messages/MOSDFastDispatchOp.h b/src/messages/MOSDFastDispatchOp.h index 6babd16f7961..1eaa2c37f9a3 100644 --- a/src/messages/MOSDFastDispatchOp.h +++ b/src/messages/MOSDFastDispatchOp.h @@ -10,6 +10,9 @@ class MOSDFastDispatchOp : public Message { public: virtual epoch_t get_map_epoch() const = 0; + virtual epoch_t get_min_epoch() const { + return get_map_epoch(); + } virtual spg_t get_spg() const = 0; MOSDFastDispatchOp(int t, int version, int compat_version) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f521faa69a23..92dacd75af69 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -6403,8 +6403,9 @@ void OSD::ms_fast_dispatch(Message *m) reqid.name._num, reqid.tid, reqid.inc); } - // note sender epoch + // note sender epoch, min req'd epoch op->sent_epoch = static_cast(m)->get_map_epoch(); + op->min_epoch = static_cast(m)->get_min_epoch(); service.maybe_inject_dispatch_delay(); diff --git a/src/osd/OpRequest.h b/src/osd/OpRequest.h index a32e03b9e937..56663ecbd51c 100644 --- a/src/osd/OpRequest.h +++ b/src/osd/OpRequest.h @@ -110,6 +110,7 @@ public: bool check_send_map = true; ///< true until we check if sender needs a map epoch_t sent_epoch = 0; ///< client's map epoch + epoch_t min_epoch = 0; ///< min epoch needed to handle this msg bool hitset_inserted; const Message *get_req() const { return request; }