if (item.is_delete()) {
ceph_assert(missing.may_include_deletes);
}
- missing.add(oid, item.need, item.have, item.is_delete());
+ missing.add(oid, std::move(item));
} else if (p->key().substr(0, 4) == string("dup_")) {
pg_log_dup_t dup;
decode(dup, bp);
if (item.is_delete()) {
ceph_assert(missing.may_include_deletes);
}
- missing.add(oid, item.need, item.have, item.is_delete());
+ missing.add(oid, std::move(item));
} else if (p.first.substr(0, 4) == string("dup_")) {
pg_log_dup_t dup;
decode(dup, bp);
tracker.changed(oid);
}
+ void add(const hobject_t& oid, pg_missing_item&& item) {
+ rmissing[item.need.version] = oid;
+ missing.insert({oid, std::move(item)});
+ tracker.changed(oid);
+ }
+
void rm(const hobject_t& oid, eversion_t v) {
std::map<hobject_t, item>::iterator p = missing.find(oid);
if (p != missing.end() && p->second.need <= v)