From 916b1998ce5b2eadb5315cef9f07512f6f75e09e Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 9 Jun 2009 10:57:59 -0700 Subject: [PATCH] osd: fix backlog ordering part deux Remove the old entry from the map! --- src/osd/PG.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 1ca3a4f42d589..9c2cc08570cf5 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -617,17 +617,17 @@ void PG::assemble_backlog(map& omap) if (le->prior_version == eversion_t() || // either new object, or le->prior_version >= log.bottom) { // prior_version also already in log dout(15) << " skipping " << be << " (have " << *le << ")" << dendl; - omap.erase(i++); - continue; // already have it logged. + } else { + be.version = le->prior_version; + be.reqid = osd_reqid_t(); + dout(15) << " adding prior_version " << be << " (have " << *le << ")" << dendl; + omap[be.version] = be; + // don't try to index: this is the prior_version backlog entry } - - be.version = le->prior_version; - be.reqid = osd_reqid_t(); - dout(15) << " adding new " << be << " (have " << *le << ")" << dendl; - omap[be.version] = be; - // don't try to index: this is the prior_version backlog entry + omap.erase(i++); + } else { + i++; } - i++; } for (map::reverse_iterator i = omap.rbegin(); -- 2.39.5