bool keep_balanced_budget = false;
bool honor_pool_full = true;
+ std::atomic<int> extra_read_flags{0};
+
// If this is true, accumulate a set of blocklisted entities
// to be drained by consume_blocklist_events.
bool blocklist_events_enabled = false;
int *data_offset = NULL,
uint64_t features = 0,
ZTracer::Trace *parent_trace = nullptr) {
- Op *o = new Op(oid, oloc, std::move(op.ops), flags | global_op_flags |
+ Op *o = new Op(oid, oloc, std::move(op.ops), flags | global_op_flags | extra_read_flags |
CEPH_OSD_FLAG_READ, onack, objver,
data_offset, parent_trace);
o->priority = op.priority;
int flags, Op::OpComp onack,
version_t *objver = nullptr, int *data_offset = nullptr,
uint64_t features = 0, ZTracer::Trace *parent_trace = nullptr) {
- Op *o = new Op(oid, oloc, std::move(op.ops), flags | global_op_flags |
+ Op *o = new Op(oid, oloc, std::move(op.ops), flags | global_op_flags | extra_read_flags |
CEPH_OSD_FLAG_READ, std::move(onack), objver,
data_offset, parent_trace);
o->priority = op.priority;
int *ctx_budget) {
Op *o = new Op(object_t(), oloc,
std::move(op.ops),
- flags | global_op_flags | CEPH_OSD_FLAG_READ |
+ flags | global_op_flags | CEPH_OSD_FLAG_READ | extra_read_flags |
CEPH_OSD_FLAG_IGNORE_OVERLAY,
onack, NULL);
o->target.precalc_pgid = true;
ops[i].op.op = CEPH_OSD_OP_STAT;
C_Stat *fin = new C_Stat(psize, pmtime, onfinish);
Op *o = new Op(oid, oloc, std::move(ops), flags | global_op_flags |
- CEPH_OSD_FLAG_READ, fin, objver);
+ CEPH_OSD_FLAG_READ | extra_read_flags, fin, objver);
o->snapid = snap;
o->outbl = &fin->bl;
return o;
ops[i].op.extent.truncate_seq = 0;
ops[i].op.flags = op_flags;
Op *o = new Op(oid, oloc, std::move(ops), flags | global_op_flags |
- CEPH_OSD_FLAG_READ, onfinish, objver,
+ CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver,
nullptr, parent_trace);
o->snapid = snap;
o->outbl = pbl;
ops[i].indata = cmp_bl;
ops[i].op.flags = op_flags;
Op *o = new Op(oid, oloc, std::move(ops), flags | global_op_flags |
- CEPH_OSD_FLAG_READ, onfinish, objver);
+ CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
o->snapid = snap;
return o;
}
ops[i].op.extent.truncate_seq = trunc_seq;
ops[i].op.flags = op_flags;
Op *o = new Op(oid, oloc, std::move(ops), flags | global_op_flags |
- CEPH_OSD_FLAG_READ, onfinish, objver);
+ CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
o->snapid = snap;
o->outbl = pbl;
ceph_tid_t tid;
ops[i].op.extent.truncate_size = 0;
ops[i].op.extent.truncate_seq = 0;
Op *o = new Op(oid, oloc, std::move(ops), flags | global_op_flags |
- CEPH_OSD_FLAG_READ, onfinish, objver);
+ CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
o->snapid = snap;
o->outbl = pbl;
ceph_tid_t tid;
if (name)
ops[i].indata.append(name, ops[i].op.xattr.name_len);
Op *o = new Op(oid, oloc, std::move(ops), flags | global_op_flags |
- CEPH_OSD_FLAG_READ, onfinish, objver);
+ CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
o->snapid = snap;
o->outbl = pbl;
ceph_tid_t tid;
ops[i].op.op = CEPH_OSD_OP_GETXATTRS;
C_GetAttrs *fin = new C_GetAttrs(attrset, onfinish);
Op *o = new Op(oid, oloc, std::move(ops), flags | global_op_flags |
- CEPH_OSD_FLAG_READ, fin, objver);
+ CEPH_OSD_FLAG_READ | extra_read_flags, fin, objver);
o->snapid = snap;
o->outbl = &fin->bl;
ceph_tid_t tid;