From: Sage Weil Date: Fri, 24 Feb 2017 21:58:58 +0000 (-0500) Subject: osd: accept MOSDScrub messages from ceph-mgr X-Git-Tag: v12.0.2~252^2~62 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bde03d27e2afea7985618ce6cf256423b2ce90c2;p=ceph.git osd: accept MOSDScrub messages from ceph-mgr Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 6f8d51f2acc9..940f3fe1bd71 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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()) { diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 8ec611cd34f3..af8e7d6c3a15 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -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