private:
int op_cancel(OSDSession *s, ceph_tid_t tid, int r);
int _op_cancel(ceph_tid_t tid, int r);
+
+ int get_read_flags(int flags) {
+ return flags | global_op_flags | extra_read_flags.load(std::memory_order_relaxed) |
+ CEPH_OSD_FLAG_READ;
+ }
+
public:
int op_cancel(ceph_tid_t tid, int r);
int op_cancel(const std::vector<ceph_tid_t>& tidls, int r);
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 | extra_read_flags |
- CEPH_OSD_FLAG_READ, onack, objver,
+ Op *o = new Op(oid, oloc, std::move(op.ops), get_read_flags(flags), onack, objver,
data_offset, parent_trace);
o->priority = op.priority;
o->snapid = snapid;
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 | extra_read_flags |
- CEPH_OSD_FLAG_READ, std::move(onack), objver,
+ Op *o = new Op(oid, oloc, std::move(op.ops), get_read_flags(flags),
+ std::move(onack), objver,
data_offset, parent_trace);
o->priority = op.priority;
o->snapid = snapid;
int *ctx_budget) {
Op *o = new Op(object_t(), oloc,
std::move(op.ops),
- flags | global_op_flags | CEPH_OSD_FLAG_READ | extra_read_flags |
+ get_read_flags(flags) |
CEPH_OSD_FLAG_IGNORE_OVERLAY,
onack, NULL);
o->target.precalc_pgid = true;
int i = init_ops(ops, 1, extra_ops);
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 | extra_read_flags, fin, objver);
+ Op *o = new Op(oid, oloc, std::move(ops),
+ get_read_flags(flags), fin, objver);
o->snapid = snap;
o->outbl = &fin->bl;
return o;
ops[i].op.extent.truncate_size = 0;
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 | extra_read_flags, onfinish, objver,
+ Op *o = new Op(oid, oloc, std::move(ops), get_read_flags(flags), onfinish, objver,
nullptr, parent_trace);
o->snapid = snap;
o->outbl = pbl;
ops[i].op.extent.truncate_seq = 0;
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 | extra_read_flags, onfinish, objver);
+ Op *o = new Op(oid, oloc, std::move(ops), get_read_flags(flags), onfinish, objver);
o->snapid = snap;
return o;
}
ops[i].op.extent.truncate_size = trunc_size;
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 | extra_read_flags, onfinish, objver);
+ Op *o = new Op(oid, oloc, std::move(ops), get_read_flags(flags), onfinish, objver);
o->snapid = snap;
o->outbl = pbl;
ceph_tid_t tid;
ops[i].op.extent.length = len;
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 | extra_read_flags, onfinish, objver);
+ Op *o = new Op(oid, oloc, std::move(ops), get_read_flags(flags), onfinish, objver);
o->snapid = snap;
o->outbl = pbl;
ceph_tid_t tid;
ops[i].op.xattr.value_len = 0;
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 | extra_read_flags, onfinish, objver);
+ Op *o = new Op(oid, oloc, std::move(ops), get_read_flags(flags), onfinish, objver);
o->snapid = snap;
o->outbl = pbl;
ceph_tid_t tid;
int i = init_ops(ops, 1, extra_ops);
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 | extra_read_flags, fin, objver);
+ Op *o = new Op(oid, oloc, std::move(ops), get_read_flags(flags), fin, objver);
o->snapid = snap;
o->outbl = &fin->bl;
ceph_tid_t tid;