From b44ead76594f56148440edcb3066dd42c7461b24 Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Wed, 15 Jun 2011 15:49:08 -0700 Subject: [PATCH] mon/MonMap: deglobalize Signed-off-by: Colin McCabe --- src/cmon.cc | 6 +++--- src/mon/Elector.cc | 2 +- src/mon/MonClient.cc | 1 + src/mon/MonMap.h | 4 ++-- src/mon/MonmapMonitor.h | 5 ++++- src/monmaptool.cc | 2 +- src/rbd.cc | 2 +- 7 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/cmon.cc b/src/cmon.cc index c497171385e72..fe53d4a949286 100644 --- a/src/cmon.cc +++ b/src/cmon.cc @@ -104,7 +104,7 @@ int main(int argc, const char **argv) << error << std::endl; exit(1); } - MonMap monmap; + MonMap monmap(ceph_clock_now(&g_ceph_context)); monmap.decode(monmapbl); err = osdmapbl.read_file(osdmapfn, &error); @@ -190,7 +190,7 @@ int main(int argc, const char **argv) v++; // set the version - MonMap tmp; + MonMap tmp(ceph_clock_now(&g_ceph_context)); tmp.decode(bl); if (tmp.get_epoch() != v) { cout << "changing monmap epoch from " << tmp.get_epoch() << " to " << v << std::endl; @@ -213,7 +213,7 @@ int main(int argc, const char **argv) // monmap? - MonMap monmap; + MonMap monmap(ceph_clock_now(&g_ceph_context)); { bufferlist latest; store.get_bl_ss(latest, "monmap/latest", 0); diff --git a/src/mon/Elector.cc b/src/mon/Elector.cc index 759dca0abc069..a3c7f206097b7 100644 --- a/src/mon/Elector.cc +++ b/src/mon/Elector.cc @@ -285,7 +285,7 @@ void Elector::dispatch(Message *m) { MMonElection *em = (MMonElection*)m; - MonMap *peermap = new MonMap; + MonMap *peermap = new MonMap(ceph_clock_now(&g_ceph_context)); peermap->decode(em->monmap_bl); if (peermap->epoch > mon->monmap->epoch) { dout(0) << m->get_source_inst() << " has newer monmap epoch " << peermap->epoch diff --git a/src/mon/MonClient.cc b/src/mon/MonClient.cc index d8d0cb48b2572..4111fe10e70c2 100644 --- a/src/mon/MonClient.cc +++ b/src/mon/MonClient.cc @@ -43,6 +43,7 @@ MonClient::MonClient(CephContext *cct_) : Dispatcher(cct_), + monmap(ceph_clock_now(cct_)), cct(cct_), state(MC_STATE_NONE), messenger(NULL), diff --git a/src/mon/MonMap.h b/src/mon/MonMap.h index 56d45deca9067..635a83b38367d 100644 --- a/src/mon/MonMap.h +++ b/src/mon/MonMap.h @@ -44,9 +44,9 @@ class MonMap { } } - MonMap() : epoch(0) { + MonMap(utime_t last_changed_) + : epoch(0), last_changed(last_changed_), created(last_changed_) { memset(&fsid, 0, sizeof(fsid)); - last_changed = created = ceph_clock_now(&g_ceph_context); } ceph_fsid_t& get_fsid() { return fsid; } diff --git a/src/mon/MonmapMonitor.h b/src/mon/MonmapMonitor.h index 406dcc96df7f7..be987f6bfddab 100644 --- a/src/mon/MonmapMonitor.h +++ b/src/mon/MonmapMonitor.h @@ -36,7 +36,10 @@ class MMonCommand; class MonmapMonitor : public PaxosService { public: - MonmapMonitor(Monitor *mn, Paxos *p) : PaxosService(mn, p) {} + MonmapMonitor(Monitor *mn, Paxos *p) + : PaxosService(mn, p), pending_map(ceph_clock_now(&g_ceph_context)) + { + } MonMap pending_map; //the pending map awaiting passage void create_initial(bufferlist& bl); diff --git a/src/monmaptool.cc b/src/monmaptool.cc index 2382e5831b8a2..3f1c7e9470e3f 100644 --- a/src/monmaptool.cc +++ b/src/monmaptool.cc @@ -92,7 +92,7 @@ int main(int argc, const char **argv) if (!fn) usage(); - MonMap monmap; + MonMap monmap(ceph_clock_now(&g_ceph_context)); cout << me << ": monmap file " << fn << std::endl; diff --git a/src/rbd.cc b/src/rbd.cc index 98fd811eb2a87..ecbc1b8eebe6f 100644 --- a/src/rbd.cc +++ b/src/rbd.cc @@ -507,7 +507,7 @@ static int do_watch(librados::IoCtx& pp, const char *imgname) static int do_kernel_add(const char *poolname, const char *imgname, const char *secretfile, const char *user) { - MonMap monmap; + MonMap monmap(ceph_clock_now(&g_ceph_context)); int r = MonClient::build_initial_monmap(monmap); if (r < 0) return r; -- 2.39.5