From 3925eea8952aee8e868b7d73df026004e306bbb6 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 4 Dec 2008 11:16:25 -0800 Subject: [PATCH] osd: ignore dup scrub maps --- src/osd/OSD.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index fb3963d52b32f..7813d644413a5 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; -- 2.39.5