From 4a3220c6aa1b188eefc9908a0dce75d5e364d93b Mon Sep 17 00:00:00 2001 From: sage Date: Sat, 4 Mar 2006 23:20:44 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@718 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/mds/MDS.cc | 6 +++++- ceph/osd/OSD.cc | 20 +++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/ceph/mds/MDS.cc b/ceph/mds/MDS.cc index 9f966fa3ee853..7f467e8475b44 100644 --- a/ceph/mds/MDS.cc +++ b/ceph/mds/MDS.cc @@ -117,7 +117,11 @@ MDS::MDS(MDCluster *mdc, int whoami, Messenger *m) { // osdmap = new OSDMap(); osdmap->set_pg_bits(g_conf.osd_pg_bits); - osdmap->inc_version(); + osdmap->inc_version(); // version = 1 + assert(osdmap->get_version() == 1); + + if (!g_conf.mkfs) + osdmap->inc_version(); // 1 -> mkfs, we want something bigger or else OSDs will recreate PGs Bucket *b = new UniformBucket(1, 0); int root = osdmap->crush.add_bucket(b); diff --git a/ceph/osd/OSD.cc b/ceph/osd/OSD.cc index e6f33f503b40d..6df7a4840dabb 100644 --- a/ceph/osd/OSD.cc +++ b/ceph/osd/OSD.cc @@ -588,6 +588,8 @@ void OSD::update_map(bufferlist& state, bool mkfs) list pg_list; if (mkfs) { + assert(osdmap->get_version() == 1); + // create PGs for (int nrep = 1; nrep <= g_conf.osd_max_rep; nrep++) { ps_t maxps = 1LL << osdmap->get_pg_bits(); @@ -1414,13 +1416,17 @@ void OSD::plan_recovery(PG *pg) list complete_peers; pg->plan_recovery(store, current_version, complete_peers); - for (list::iterator it = complete_peers.begin(); - it != complete_peers.end(); - it++) { - PGPeer *p = *it; - dout(7) << " " << *pg << " telling peer osd" << p->get_peer() << " they are complete" << endl; - messenger->send_message(new MOSDPGUpdate(osdmap->get_version(), pg->get_pgid(), true, osdmap->get_version()), - MSG_ADDR_OSD(p->get_peer())); + if (current_version > 1) { + for (list::iterator it = complete_peers.begin(); + it != complete_peers.end(); + it++) { + PGPeer *p = *it; + dout(7) << " " << *pg << " telling peer osd" << p->get_peer() << " they are complete" << endl; + messenger->send_message(new MOSDPGUpdate(osdmap->get_version(), pg->get_pgid(), true, osdmap->get_version()), + MSG_ADDR_OSD(p->get_peer())); + } + } else { + dout(7) << "not sending PGUpdates since this is a mkfs (current_version==1)" << endl; } } -- 2.39.5