eversion_t pg_trim_to; // primary->replica: trim to here
osd_peer_stat_t peer_stat;
- map<string,bufferptr> attrset;
+ map<string,bufferlist> attrset;
interval_set<uint64_t> data_subset;
map<hobject_t, interval_set<uint64_t> > clone_subsets;
virtual ObjectContextRef get_obc(
const hobject_t &hoid,
- map<string, bufferptr> &attrs) = 0;
+ map<string, bufferlist> &attrs) = 0;
virtual void op_applied(
const eversion_t &applied_version) = 0;
const interval_set<uint64_t> &intervals_included,
bufferlist data_included,
bufferlist omap_header,
- map<string, bufferptr> &attrs,
+ map<string, bufferlist> &attrs,
map<string, bufferlist> &omap_entries,
ObjectStore::Transaction *t);
void submit_push_complete(ObjectRecoveryInfo &recovery_info,
ObjectContextRef ReplicatedPG::get_object_context(const hobject_t& soid,
bool can_create,
- map<string, bufferptr> *attrs)
+ map<string, bufferlist> *attrs)
{
assert(
attrs || !pg_log.get_missing().is_missing(soid) ||
bufferlist bv;
if (attrs) {
assert(attrs->count(OI_ATTR));
- bv.push_back(attrs->find(OI_ATTR)->second);
+ bv = attrs->find(OI_ATTR)->second;
} else {
int r = pgbackend->objects_get_attr(soid, OI_ATTR, &bv);
if (r < 0) {
if (pool.info.require_rollback()) {
if (attrs) {
- for (map<string, bufferptr>::iterator i = attrs->begin();
- i != attrs->end();
- ++i) {
- bufferlist bl;
- bl.append(i->second);
- obc->attr_cache.insert(make_pair(i->first, bl));
- }
+ obc->attr_cache = *attrs;
} else {
int r = pgbackend->objects_get_attrs(
soid,
ps_t seed,
bool can_create,
const string& nspace,
- map<string, bufferptr> *attrs)
+ map<string, bufferlist> *attrs)
{
Mutex::Locker l(snapset_contexts_lock);
SnapSetContext *ssc;
}
} else {
assert(attrs->count(SS_ATTR));
- bv.push_back(attrs->find(SS_ATTR)->second);
+ bv = attrs->find(SS_ATTR)->second;
}
ssc = new SnapSetContext(oid);
_register_snapset_context(ssc);
const interval_set<uint64_t> &intervals_included,
bufferlist data_included,
bufferlist omap_header,
- map<string, bufferptr> &attrs,
+ map<string, bufferlist> &attrs,
map<string, bufferlist> &omap_entries,
ObjectStore::Transaction *t)
{
store->getattrs(coll, recovery_info.soid, out_op->attrset);
// Debug
- bufferlist bv;
- bv.push_back(out_op->attrset[OI_ATTR]);
+ bufferlist bv = out_op->attrset[OI_ATTR];
object_info_t oi(bv);
if (oi.version != recovery_info.version) {
}
ObjectContextRef get_obc(
const hobject_t &hoid,
- map<string, bufferptr> &attrs) {
+ map<string, bufferlist> &attrs) {
return get_object_context(hoid, true, &attrs);
}
void log_operation(
ObjectContextRef get_object_context(
const hobject_t& soid,
bool can_create,
- map<string, bufferptr> *attrs = 0
+ map<string, bufferlist> *attrs = 0
);
void context_registry_on_change();
SnapSetContext *get_snapset_context(
const object_t& oid, const string &key,
ps_t seed, bool can_create, const string &nspace,
- map<string, bufferptr> *attrs = 0
+ map<string, bufferlist> *attrs = 0
);
void register_snapset_context(SnapSetContext *ssc) {
Mutex::Locker l(snapset_contexts_lock);
interval_set<uint64_t> data_included;
bufferlist omap_header;
map<string, bufferlist> omap_entries;
- map<string, bufferptr> attrset;
+ map<string, bufferlist> attrset;
ObjectRecoveryInfo recovery_info;
ObjectRecoveryProgress before_progress;