osd_reqid_t(),
ctx->mtime)
);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
set<snapid_t> snaps(
ctx->obc->obs.oi.snaps.begin(),
ctx->obc->obs.oi.snaps.end());
osd_reqid_t(),
ctx->mtime)
);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
set<string> changing;
changing.insert(OI_ATTR);
ctx->obc->fill_in_setattrs(changing, &(ctx->log.back().mod_desc));
ctx->snapset_obc->obs.exists = false;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (ctx->log.back().mod_desc.rmobject(ctx->at_version.version)) {
t->stash(snapoid, ctx->at_version.version);
} else {
::encode(ctx->snapset_obc->obs.oi, bl);
setattr_maybe_cache(ctx->snapset_obc, ctx, t, OI_ATTR, bl);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
set<string> changing;
changing.insert(OI_ATTR);
changing.insert(SS_ATTR);
// --- READS ---
case CEPH_OSD_OP_SYNC_READ:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
bufferlist bl;
if (trim != (uint64_t)-1 && op.extent.length == 0) {
// read size was trimmed to zero
- } else if (pool.info.ec_pool()) {
+ } else if (pool.info.require_rollback()) {
ctx->pending_async_reads.push_back(
make_pair(
make_pair(op.extent.offset, op.extent.length),
/* map extents */
case CEPH_OSD_OP_MAPEXT:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
/* map extents */
case CEPH_OSD_OP_SPARSE_READ:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
ctx->mod_desc.append(oi.size);
} else {
ctx->mod_desc.mark_unrollbackable();
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
result = check_offset_and_length(op.extent.offset, op.extent.length, cct->_conf->osd_max_object_size);
if (result < 0)
break;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
t->append(soid, op.extent.offset, op.extent.length, osd_op.indata);
} else {
t->write(soid, op.extent.offset, op.extent.length, osd_op.indata);
if (result < 0)
break;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (obs.exists) {
if (ctx->mod_desc.rmobject(oi.version.version)) {
t->stash(soid, oi.version.version);
break;
case CEPH_OSD_OP_ZERO:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
// falling through
case CEPH_OSD_OP_TRUNCATE:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
case CEPH_OSD_OP_CLONERANGE:
ctx->mod_desc.mark_unrollbackable();
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
string aname;
bp.copy(op.xattr.name_len, aname);
string name = "_" + aname;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
map<string, boost::optional<bufferlist> > to_set;
bufferlist old;
int r = getattr_maybe_cache(ctx->obc, name, &old);
string aname;
bp.copy(op.xattr.name_len, aname);
string name = "_" + aname;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
map<string, boost::optional<bufferlist> > to_set;
bufferlist old;
int r = getattr_maybe_cache(ctx->obc, name, &old);
// -- trivial map --
case CEPH_OSD_OP_TMAPGET:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_TMAPPUT:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_TMAPUP:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
// OMAP Read ops
case CEPH_OSD_OP_OMAPGETKEYS:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_OMAPGETVALS:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_OMAPGETHEADER:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_OMAPGETVALSBYKEYS:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_OMAP_CMP:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
// OMAP Write ops
case CEPH_OSD_OP_OMAPSETVALS:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_OMAPSETHEADER:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_OMAPCLEAR:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
break;
case CEPH_OSD_OP_OMAPRMKEYS:
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
result = -EOPNOTSUPP;
break;
}
if (!obs.exists || (obs.oi.is_whiteout() && !no_whiteout))
return -ENOENT;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (ctx->mod_desc.rmobject(oi.version.version)) {
t->stash(soid, oi.version.version);
} else {
dout(10) << "_rollback_to deleting " << soid.oid
<< " and rolling back to old snap" << dendl;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (obs.exists) {
if (ctx->mod_desc.rmobject(oi.version.version)) {
t->stash(soid, oi.version.version);
ctx->clone_obc->destructor_callback = new C_PG_ObjectContext(this, ctx->clone_obc.get());
ctx->clone_obc->obs.oi = static_snap_oi;
ctx->clone_obc->obs.exists = true;
- if (pool.info.ec_pool())
+ if (pool.info.require_rollback())
ctx->clone_obc->attr_cache = ctx->obc->attr_cache;
snap_oi = &ctx->clone_obc->obs.oi;
} else {
ctx->at_version,
ctx->obs->oi.version,
0, osd_reqid_t(), ctx->mtime));
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (ctx->log.back().mod_desc.rmobject(ctx->at_version.version)) {
ctx->op_t->stash(snapoid, ctx->at_version.version);
} else {
0, osd_reqid_t(), ctx->mtime));
ctx->snapset_obc = get_object_context(snapoid, true);
- if (pool.info.ec_pool() && !ctx->snapset_obc->obs.exists) {
+ if (pool.info.require_rollback() && !ctx->snapset_obc->obs.exists) {
ctx->log.back().mod_desc.create();
- } else if (!pool.info.ec_pool()) {
+ } else if (!pool.info.require_rollback()) {
ctx->log.back().mod_desc.mark_unrollbackable();
}
ctx->snapset_obc->obs.exists = true;
ctx->op_t->touch(snapoid);
setattr_maybe_cache(ctx->snapset_obc, ctx, ctx->op_t, OI_ATTR, bv);
setattr_maybe_cache(ctx->snapset_obc, ctx, ctx->op_t, SS_ATTR, bss);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
map<string, boost::optional<bufferlist> > to_set;
to_set[SS_ATTR];
to_set[OI_ATTR];
<< " in " << soid << dendl;
setattr_maybe_cache(ctx->obc, ctx, ctx->op_t, SS_ATTR, bss);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
set<string> changing;
changing.insert(OI_ATTR);
changing.insert(SS_ATTR);
bool async_read_started = false;
object_copy_data_t _reply_obj;
C_CopyFrom_AsyncReadCb *cb = NULL;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
cb = new C_CopyFrom_AsyncReadCb(&osd_op, classic);
}
object_copy_data_t &reply_obj = cb ? cb->reply_obj : _reply_obj;
// omap
std::map<std::string,bufferlist>& out_omap = reply_obj.omap;
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
cursor.omap_complete = true;
} else {
if (left > 0 && !cursor.omap_complete) {
return;
}
- if (r >= 0 && pool.info.ec_pool() && cop->omap.size()) {
+ if (r >= 0 && pool.info.require_rollback() && cop->omap.size()) {
r = -EOPNOTSUPP;
}
cop->objecter_tid = 0;
ObjectState& obs = ctx->new_obs;
CopyFromCallback *cb = static_cast<CopyFromCallback*>(ctx->copy_cb);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (obs.exists) {
if (ctx->mod_desc.rmobject(ctx->at_version.version)) {
ctx->op_t->stash(obs.oi.soid, ctx->at_version.version);
repop->ctx->apply_pending_attrs();
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
for (vector<pg_log_entry_t>::iterator i = repop->ctx->log.begin();
i != repop->ctx->log.end();
++i) {
::encode(obc->obs.oi, bl);
setattr_maybe_cache(obc, repop->ctx, t, OI_ATTR, bl);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
map<string, boost::optional<bufferlist> > to_set;
to_set[OI_ATTR] = bl;
ctx->log.back().mod_desc.setattrs(to_set);
populate_obc_watchers(obc);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (attrs) {
for (map<string, bufferptr>::iterator i = attrs->begin();
i != attrs->end();
0,
osd_reqid_t(),
ctx->mtime));
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (ctx->log.back().mod_desc.rmobject(ctx->at_version.version)) {
ctx->op_t->stash(old_obj, ctx->at_version.version);
} else {
osd_reqid_t(),
ctx->mtime)
);
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
ctx->log.back().mod_desc.create();
} else {
ctx->log.back().mod_desc.mark_unrollbackable();
0,
osd_reqid_t(),
repop->ctx->mtime));
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (repop->ctx->log.back().mod_desc.rmobject(
repop->ctx->at_version.version)) {
repop->ctx->op_t->stash(oid, repop->ctx->at_version.version);
const string &key,
bufferlist &val)
{
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
op->pending_attrs[obc][key] = val;
}
t->setattr(obc->obs.oi.soid, key, val);
PGBackend::PGTransaction *t,
const string &key)
{
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
op->pending_attrs[obc][key] = boost::optional<bufferlist>();
}
t->rmattr(obc->obs.oi.soid, key);
const string &key,
bufferlist *val)
{
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
map<string, bufferlist>::iterator i = obc->attr_cache.find(key);
if (i != obc->attr_cache.end()) {
if (val)
ObjectContextRef obc,
map<string, bufferlist> *out)
{
- if (pool.info.ec_pool()) {
+ if (pool.info.require_rollback()) {
if (out)
*out = obc->attr_cache;
return 0;