]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: avoid many/most OSDMap::get_inst() calls
authorSage Weil <sage@redhat.com>
Wed, 30 May 2018 18:48:14 +0000 (13:48 -0500)
committerSage Weil <sage@redhat.com>
Thu, 31 May 2018 13:10:24 +0000 (08:10 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc

index f2988bae60194a1208374760392709b80154ebc1..c9cdc5e0617d0c4658d9167d735442bad1dd96d6 100644 (file)
@@ -2669,11 +2669,12 @@ bool OSDMonitor::preprocess_boot(MonOpRequestRef op)
 
   // already booted?
   if (osdmap.is_up(from) &&
-      osdmap.get_inst(from) == m->get_orig_source_inst() &&
+      osdmap.get_addrs(from) == m->get_orig_source_addrs() &&
       osdmap.get_cluster_addr(from) == m->cluster_addr) {
     // yup.
-    dout(7) << "preprocess_boot dup from " << m->get_orig_source_inst()
-           << " == " << osdmap.get_inst(from) << dendl;
+    dout(7) << "preprocess_boot dup from " << m->get_orig_source()
+           << " " << m->get_orig_source_addrs()
+           << " == " << osdmap.get_addrs(from) << dendl;
     _booted(op, false);
     return true;
   }
@@ -2736,10 +2737,10 @@ bool OSDMonitor::prepare_boot(MonOpRequestRef op)
 
   // already up?  mark down first?
   if (osdmap.is_up(from)) {
-    dout(7) << __func__ << " was up, first marking down "
-           << osdmap.get_inst(from) << dendl;
+    dout(7) << __func__ << " was up, first marking down osd." << from << " "
+           << osdmap.get_addrs(from) << dendl;
     // preprocess should have caught these;  if not, assert.
-    assert(osdmap.get_inst(from) != m->get_orig_source_inst() ||
+    assert(osdmap.get_addrs(from) != m->get_orig_source_addrs() ||
            osdmap.get_cluster_addr(from) != m->cluster_addr);
     assert(osdmap.get_uuid(from) == m->sb.osd_fsid);
 
@@ -2909,7 +2910,7 @@ bool OSDMonitor::preprocess_full(MonOpRequestRef op)
   if ((!osdmap.is_up(from) &&
        osdmap.get_most_recent_addrs(from) == m->get_orig_source_addrs()) ||
       (osdmap.is_up(from) &&
-       osdmap.get_inst(from) != m->get_orig_source_inst())) {
+       osdmap.get_addrs(from) != m->get_orig_source_addrs())) {
     dout(7) << __func__ << " ignoring full message from down "
            << m->get_orig_source_inst() << dendl;
     goto ignore;
@@ -2990,8 +2991,10 @@ bool OSDMonitor::preprocess_alive(MonOpRequestRef op)
   }
 
   if (!osdmap.is_up(from) ||
-      osdmap.get_inst(from) != m->get_orig_source_inst()) {
-    dout(7) << "preprocess_alive ignoring alive message from down " << m->get_orig_source_inst() << dendl;
+      osdmap.get_addrs(from) != m->get_orig_source_addrs()) {
+    dout(7) << "preprocess_alive ignoring alive message from down "
+           << m->get_orig_source() << " " << m->get_orig_source_addrs()
+           << dendl;
     goto ignore;
   }
 
@@ -3067,7 +3070,7 @@ bool OSDMonitor::prepare_pg_created(MonOpRequestRef op)
   auto from = src.num();
   if (!src.is_osd() ||
       !mon->osdmon()->osdmap.is_up(from) ||
-      m->get_orig_source_inst() != mon->osdmon()->osdmap.get_inst(from)) {
+      m->get_orig_source_addrs() != mon->osdmon()->osdmap.get_addrs(from)) {
     dout(1) << __func__ << " ignoring stats from non-active osd." << dendl;
     return false;
   }
@@ -3097,8 +3100,10 @@ bool OSDMonitor::preprocess_pgtemp(MonOpRequestRef op)
   }
 
   if (!osdmap.is_up(from) ||
-      osdmap.get_inst(from) != m->get_orig_source_inst()) {
-    dout(7) << "ignoring pgtemp message from down " << m->get_orig_source_inst() << dendl;
+      osdmap.get_addrs(from) != m->get_orig_source_addrs()) {
+    dout(7) << "ignoring pgtemp message from down "
+           << m->get_orig_source() << " " << m->get_orig_source_addrs()
+           << dendl;
     goto ignore;
   }
 
@@ -3336,7 +3341,7 @@ bool OSDMonitor::prepare_beacon(MonOpRequestRef op)
 
   if (!src.is_osd() ||
       !osdmap.is_up(from) ||
-      beacon->get_orig_source_inst() != osdmap.get_inst(from)) {
+      beacon->get_orig_source_addrs() != osdmap.get_addrs(from)) {
     dout(1) << " ignoring beacon from non-active osd." << from << dendl;
     return false;
   }