From b9ffb4284cc09bba50891548b88b08817d7bb592 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 8 Aug 2008 16:15:47 -0700 Subject: [PATCH] osd: forget pushes to newly stray osds --- src/osd/ReplicatedPG.cc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 69e636fa7b156..a704bcdb0929d 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1686,6 +1686,31 @@ void ReplicatedPG::on_change() } } } + + // remove strays from pushing map + { + map >::iterator p = pushing.begin(); + while (p != pushing.end()) { + set::iterator q = p->second.begin(); + while (q != p->second.end()) { + int o = *q++; + bool have = false; + for (unsigned i=1; ifirst << " to (now stray) osd" << o << dendl; + p->second.erase(o); + } + } + if (p->second.empty()) + pushing.erase(p++); + else + p++; + } + } } void ReplicatedPG::on_role_change() -- 2.39.5