]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: accept MOSDScrub messages from ceph-mgr
authorSage Weil <sage@redhat.com>
Fri, 24 Feb 2017 21:58:58 +0000 (16:58 -0500)
committerSage Weil <sage@redhat.com>
Wed, 29 Mar 2017 15:39:25 +0000 (11:39 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/OSD.h

index 6f8d51f2acc9a7bfd6d312784377155efc2285c3..940f3fe1bd71ef1121fcd9c1d649551d46cea899 100644 (file)
@@ -6481,7 +6481,7 @@ void OSD::handle_pg_scrub(MOSDScrub *m, PG *pg)
 void OSD::handle_scrub(MOSDScrub *m)
 {
   dout(10) << "handle_scrub " << *m << dendl;
-  if (!require_mon_peer(m)) {
+  if (!require_mon_or_mgr_peer(m)) {
     m->put();
     return;
   }
@@ -7526,6 +7526,18 @@ bool OSD::require_mon_peer(const Message *m)
   return true;
 }
 
+bool OSD::require_mon_or_mgr_peer(const Message *m)
+{
+  if (!m->get_connection()->peer_is_mon() &&
+      !m->get_connection()->peer_is_mgr()) {
+    dout(0) << "require_mon_or_mgr_peer received from non-mon, non-mgr "
+           << m->get_connection()->get_peer_addr()
+           << " " << *m << dendl;
+    return false;
+  }
+  return true;
+}
+
 bool OSD::require_osd_peer(const Message *m)
 {
   if (!m->get_connection()->peer_is_osd()) {
index 8ec611cd34f35b2c4ff3f59e9ef3fe7ea435e906..af8e7d6c3a158514875f416ee626e87e6b1217b2 100644 (file)
@@ -2177,6 +2177,7 @@ protected:
                OSDMapRef map);
 
   bool require_mon_peer(const Message *m);
+  bool require_mon_or_mgr_peer(const Message *m);
   bool require_osd_peer(const Message *m);
   /***
    * Verifies that we were alive in the given epoch, and that