for (; p != log.log.end(); p++) {
Log::Entry &ne = *p;
dout(20) << "merge_log merging " << ne << dendl;
- missing.add_next_event(ne, oinfo);
+ missing.add_next_event(ne);
if (ne.is_delete())
t.remove(coll, ne.soid);
}
Log::Entry &ne = *p;
dout(20) << "merge_log " << ne << dendl;
log.index(ne);
- missing.add_next_event(ne, info);
+ missing.add_next_event(ne);
if (ne.is_delete())
t.remove(coll, ne.soid);
}
p != m->log.log.end();
p++)
if (p->version > plu)
- pm.add_next_event(*p, pi);
+ pm.add_next_event(*p);
}
if (m) {
for (list<Log::Entry>::const_iterator i = m->log.log.begin();
i != m->log.log.end();
++i) {
- pmissing.add_next_event(*i, pinfo);
+ pmissing.add_next_event(*i);
}
pinfo.last_update = m->log.head;
* this needs to be called in log order as we extend the log. it
* assumes missing is accurate up through the previous log entry.
*/
-void PG::Missing::add_next_event(const Log::Entry& e, const Info &info)
+void PG::Missing::add_next_event(const Log::Entry& e)
{
if (e.is_update()) {
if (e.prior_version == eversion_t()) {
//assert(missing[e.soid].need == e.prior_version);
rmissing.erase(missing[e.soid].need.version);
missing[e.soid].need = e.version; // leave .have unchanged.
- } else if (e.is_backlog() ||
- e.prior_version <= info.log_tail ||
- e.prior_version > info.last_update) {
+ } else if (e.is_backlog()) {
// May not have prior version
missing[e.soid].need = e.version;
} else {
bool is_missing(const hobject_t& oid) const;
bool is_missing(const hobject_t& oid, eversion_t v) const;
eversion_t have_old(const hobject_t& oid) const;
- void add_next_event(const Log::Entry& e, const Info &info);
+ void add_next_event(const Log::Entry& e);
void revise_need(hobject_t oid, eversion_t need);
void add(const hobject_t& oid, eversion_t need, eversion_t have);
void rm(const hobject_t& oid, eversion_t v);