prepare_assert_ops(&op);
op.rollback(snapid);
objecter->mutate(oid, oloc,
- op, snapc, ceph::real_clock::now(), 0,
+ op, snapc, ceph::real_clock::now(),
+ extra_op_flags,
onack, NULL);
std::unique_lock l{mylock};
int op = o->ops[0].op.op;
ldout(client->cct, 10) << ceph_osd_op_name(op) << " oid=" << oid
<< " nspace=" << oloc.nspace << dendl;
- Objecter::Op *objecter_op = objecter->prepare_mutate_op(oid, oloc,
- *o, snapc, ut, flags,
- oncommit, &ver);
+ Objecter::Op *objecter_op = objecter->prepare_mutate_op(
+ oid, oloc,
+ *o, snapc, ut,
+ flags | extra_op_flags,
+ oncommit, &ver);
objecter->op_submit(objecter_op);
{
int op = o->ops[0].op.op;
ldout(client->cct, 10) << ceph_osd_op_name(op) << " oid=" << oid << " nspace=" << oloc.nspace << dendl;
- Objecter::Op *objecter_op = objecter->prepare_read_op(oid, oloc,
- *o, snap_seq, pbl, flags,
- onack, &ver);
+ Objecter::Op *objecter_op = objecter->prepare_read_op(
+ oid, oloc,
+ *o, snap_seq, pbl,
+ flags | extra_op_flags,
+ onack, &ver);
objecter->op_submit(objecter_op);
{
}
trace.event("init root span");
- Objecter::Op *objecter_op = objecter->prepare_read_op(oid, oloc,
- *o, snap_seq, pbl, flags,
- oncomplete, &c->objver, nullptr, 0, &trace);
+ Objecter::Op *objecter_op = objecter->prepare_read_op(
+ oid, oloc,
+ *o, snap_seq, pbl, flags | extra_op_flags,
+ oncomplete, &c->objver, nullptr, 0, &trace);
objecter->op_submit(objecter_op, &c->tid);
trace.event("rados operate read submitted");
trace.event("init root span");
Objecter::Op *op = objecter->prepare_mutate_op(
- oid, oloc, *o, snap_context, ut, flags,
+ oid, oloc, *o, snap_context, ut, flags | extra_op_flags,
oncomplete, &c->objver, osd_reqid_t(), &trace);
objecter->op_submit(op, &c->tid);
trace.event("rados operate op submitted");
Objecter::Op *o = objecter->prepare_read_op(
oid, oloc,
- off, len, snapid, pbl, 0,
+ off, len, snapid, pbl, extra_op_flags,
oncomplete, &c->objver, nullptr, 0, &trace);
objecter->op_submit(o, &c->tid);
return 0;
Objecter::Op *o = objecter->prepare_read_op(
oid, oloc,
- off, len, snapid, &c->bl, 0,
+ off, len, snapid, &c->bl, extra_op_flags,
oncomplete, &c->objver, nullptr, 0, &trace);
objecter->op_submit(o, &c->tid);
return 0;
Objecter::Op *o = objecter->prepare_read_op(
oid, oloc,
- onack->m_ops, snapid, NULL, 0,
+ onack->m_ops, snapid, NULL, extra_op_flags,
onack, &c->objver);
objecter->op_submit(o, &c->tid);
return 0;
c->io = this;
Objecter::Op *o = objecter->prepare_cmpext_op(
- oid, oloc, off, cmp_bl, snap_seq, 0,
+ oid, oloc, off, cmp_bl, snap_seq, extra_op_flags,
onack, &c->objver);
objecter->op_submit(o, &c->tid);
onack->m_ops.cmpext(off, cmp_len, cmp_buf, NULL);
Objecter::Op *o = objecter->prepare_read_op(
- oid, oloc, onack->m_ops, snap_seq, NULL, 0, onack, &c->objver);
+ oid, oloc, onack->m_ops, snap_seq, NULL, extra_op_flags, onack, &c->objver);
objecter->op_submit(o, &c->tid);
return 0;
}
Objecter::Op *o = objecter->prepare_write_op(
oid, oloc,
- off, len, snapc, bl, ut, 0,
+ off, len, snapc, bl, ut, extra_op_flags,
oncomplete, &c->objver, nullptr, 0, &trace);
objecter->op_submit(o, &c->tid);
Objecter::Op *o = objecter->prepare_append_op(
oid, oloc,
- len, snapc, bl, ut, 0,
+ len, snapc, bl, ut, extra_op_flags,
oncomplete, &c->objver);
objecter->op_submit(o, &c->tid);
Objecter::Op *o = objecter->prepare_write_full_op(
oid, oloc,
- snapc, bl, ut, 0,
+ snapc, bl, ut, extra_op_flags,
oncomplete, &c->objver);
objecter->op_submit(o, &c->tid);
Objecter::Op *o = objecter->prepare_writesame_op(
oid, oloc,
write_len, off,
- snapc, bl, ut, 0,
+ snapc, bl, ut, extra_op_flags,
oncomplete, &c->objver);
objecter->op_submit(o, &c->tid);
Objecter::Op *o = objecter->prepare_remove_op(
oid, oloc,
- snapc, ut, flags,
+ snapc, ut, flags | extra_op_flags,
oncomplete, &c->objver);
objecter->op_submit(o, &c->tid);
c->io = this;
Objecter::Op *o = objecter->prepare_stat_op(
oid, oloc,
- snap_seq, psize, &onack->mtime, 0,
+ snap_seq, psize, &onack->mtime, extra_op_flags,
onack, &c->objver);
objecter->op_submit(o, &c->tid);
return 0;
c->io = this;
Objecter::Op *o = objecter->prepare_stat_op(
oid, oloc,
- snap_seq, psize, &onack->mtime, 0,
+ snap_seq, psize, &onack->mtime, extra_op_flags,
onack, &c->objver);
objecter->op_submit(o, &c->tid);
return 0;
rd.hit_set_ls(pls, NULL);
object_locator_t oloc(poolid);
Objecter::Op *o = objecter->prepare_pg_read_op(
- hash, oloc, rd, NULL, 0, oncomplete, NULL, NULL);
+ hash, oloc, rd, NULL, extra_op_flags, oncomplete, NULL, NULL);
objecter->op_submit(o, &c->tid);
return 0;
}
rd.hit_set_get(ceph::real_clock::from_time_t(stamp), pbl, 0);
object_locator_t oloc(poolid);
Objecter::Op *o = objecter->prepare_pg_read_op(
- hash, oloc, rd, NULL, 0, oncomplete, NULL, NULL);
+ hash, oloc, rd, NULL, extra_op_flags, oncomplete, NULL, NULL);
objecter->op_submit(o, &c->tid);
return 0;
}
op.scrub_ls(start_after, max_to_get, objects, interval, &c->rval);
object_locator_t oloc{poolid, pg.ps()};
Objecter::Op *o = objecter->prepare_pg_read_op(
- oloc.hash, oloc, op, nullptr, CEPH_OSD_FLAG_PGOP, oncomplete,
+ oloc.hash, oloc, op, nullptr, CEPH_OSD_FLAG_PGOP | extra_op_flags, oncomplete,
nullptr, nullptr);
objecter->op_submit(o, &c->tid);
return 0;
op.scrub_ls(start_after, max_to_get, snapsets, interval, &c->rval);
object_locator_t oloc{poolid, pg.ps()};
Objecter::Op *o = objecter->prepare_pg_read_op(
- oloc.hash, oloc, op, nullptr, CEPH_OSD_FLAG_PGOP, oncomplete,
+ oloc.hash, oloc, op, nullptr, CEPH_OSD_FLAG_PGOP | extra_op_flags, oncomplete,
nullptr, nullptr);
objecter->op_submit(o, &c->tid);
return 0;
prepare_assert_ops(&rd);
rd.call(cls, method, inbl);
Objecter::Op *o = objecter->prepare_read_op(
- oid, oloc, rd, snap_seq, outbl, 0, oncomplete, &c->objver);
+ oid, oloc, rd, snap_seq, outbl, extra_op_flags, oncomplete, &c->objver);
objecter->op_submit(o, &c->tid);
return 0;
}
prepare_assert_ops(&rd);
rd.call(cls, method, inbl);
Objecter::Op *o = objecter->prepare_read_op(
- oid, oloc, rd, snap_seq, &c->bl, 0, oncomplete, &c->objver);
+ oid, oloc, rd, snap_seq, &c->bl, extra_op_flags, oncomplete, &c->objver);
objecter->op_submit(o, &c->tid);
return 0;
}
Context *onack = new C_SafeCond(mylock, cond, &done, &r);
objecter->mapext(oid, oloc,
- off, len, snap_seq, &bl, 0,
+ off, len, snap_seq, &bl, extra_op_flags,
onack);
{
::ObjectOperation rd;
prepare_assert_ops(&rd);
rd.notify_ack(notify_id, cookie, bl);
- objecter->read(oid, oloc, rd, snap_seq, (bufferlist*)NULL, 0, 0, 0);
+ objecter->read(oid, oloc, rd, snap_seq, (bufferlist*)NULL, extra_op_flags, 0, 0);
return 0;
}
prepare_assert_ops(&wr);
wr.watch(cookie, CEPH_OSD_WATCH_OP_UNWATCH);
objecter->mutate(linger_op->target.base_oid, oloc, wr,
- snapc, ceph::real_clock::now(), 0,
+ snapc, ceph::real_clock::now(), extra_op_flags,
&onfinish, &ver);
objecter->linger_cancel(linger_op);
prepare_assert_ops(&wr);
wr.watch(cookie, CEPH_OSD_WATCH_OP_UNWATCH);
objecter->mutate(linger_op->target.base_oid, oloc, wr,
- snapc, ceph::real_clock::now(), 0,
+ snapc, ceph::real_clock::now(), extra_op_flags,
oncomplete, &c->objver);
return 0;
}