From: Sage Weil Date: Thu, 4 Dec 2008 19:16:25 +0000 (-0800) Subject: osd: ignore dup scrub maps X-Git-Tag: v0.6~188 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3925eea8952aee8e868b7d73df026004e306bbb6;p=ceph.git osd: ignore dup scrub maps --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index fb3963d52b32..7813d644413a 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -2880,10 +2880,14 @@ void OSD::handle_pg_scrub(MOSDPGScrub *m) dout(10) << *pg << " has changed since " << m->epoch << dendl; } else { if (pg->is_primary()) { - dout(10) << "handle_pg_scrub got peer osd" << from << " scrub map" << dendl; - bufferlist::iterator p = m->map.begin(); - pg->peer_scrub_map[from].decode(p); - pg->kick(); + if (pg->peer_scrub_map.count(from)) { + dout(10) << "handle_pg_scrub got peer osd" << from << " scrub map -- had it already" << dendl; + } else { + dout(10) << "handle_pg_scrub got peer osd" << from << " scrub map" << dendl; + bufferlist::iterator p = m->map.begin(); + pg->peer_scrub_map[from].decode(p); + pg->kick(); + } } else { // replica, reply dout(10) << "handle_pg_scrub generating scrub map for primary" << dendl;