]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: define min_epoch for fast dispatch messages
authorSage Weil <sage@redhat.com>
Tue, 28 Feb 2017 02:13:58 +0000 (20:13 -0600)
committerSage Weil <sage@redhat.com>
Mon, 1 May 2017 20:35:11 +0000 (15:35 -0500)
For now, default to the sent_epoch (latest).

Signed-off-by: Sage Weil <sage@redhat.com>
src/messages/MOSDFastDispatchOp.h
src/osd/OSD.cc
src/osd/OpRequest.h

index 6babd16f7961cc03342c82f7c94065fbe2638b74..1eaa2c37f9a3b546eb7ad649e0aa7fae2f0b0aad 100644 (file)
@@ -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)
index f521faa69a23c37da01cfaed84922f8345e70083..92dacd75af69a371a3f4b9a5f278a8c8c197bf0f 100644 (file)
@@ -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<MOSDFastDispatchOp*>(m)->get_map_epoch();
+  op->min_epoch = static_cast<MOSDFastDispatchOp*>(m)->get_min_epoch();
 
   service.maybe_inject_dispatch_delay();
 
index a32e03b9e937ec76564e9be9cc5421699f02309d..56663ecbd51cb1678cc1caa96a0a11e85a9ba813 100644 (file)
@@ -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; }