@@ -2948,6 +2948,12 @@ class Objecter : public md_config_obs_t, public Dispatcher {
29482948private:
29492949 int op_cancel (OSDSession *s, ceph_tid_t tid, int r);
29502950 int _op_cancel (ceph_tid_t tid, int r);
2951+
2952+ int get_read_flags (int flags) {
2953+ return flags | global_op_flags | extra_read_flags.load (std::memory_order_relaxed) |
2954+ CEPH_OSD_FLAG_READ;
2955+ }
2956+
29512957public:
29522958 int op_cancel (ceph_tid_t tid, int r);
29532959 int op_cancel (const std::vector<ceph_tid_t >& tidls, int r);
@@ -3091,8 +3097,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
30913097 int *data_offset = NULL ,
30923098 uint64_t features = 0 ,
30933099 ZTracer::Trace *parent_trace = nullptr ) {
3094- Op *o = new Op (oid, oloc, std::move (op.ops ), flags | global_op_flags | extra_read_flags |
3095- CEPH_OSD_FLAG_READ, onack, objver,
3100+ Op *o = new Op (oid, oloc, std::move (op.ops ), get_read_flags (flags), onack, objver,
30963101 data_offset, parent_trace);
30973102 o->priority = op.priority ;
30983103 o->snapid = snapid;
@@ -3127,8 +3132,8 @@ class Objecter : public md_config_obs_t, public Dispatcher {
31273132 int flags, Op::OpComp onack,
31283133 version_t *objver = nullptr , int *data_offset = nullptr ,
31293134 uint64_t features = 0 , ZTracer::Trace *parent_trace = nullptr ) {
3130- Op *o = new Op (oid, oloc, std::move (op.ops ), flags | global_op_flags | extra_read_flags |
3131- CEPH_OSD_FLAG_READ, std::move (onack), objver,
3135+ Op *o = new Op (oid, oloc, std::move (op.ops ), get_read_flags ( flags),
3136+ std::move (onack), objver,
31323137 data_offset, parent_trace);
31333138 o->priority = op.priority ;
31343139 o->snapid = snapid;
@@ -3166,7 +3171,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
31663171 int *ctx_budget) {
31673172 Op *o = new Op (object_t (), oloc,
31683173 std::move (op.ops ),
3169- flags | global_op_flags | CEPH_OSD_FLAG_READ | extra_read_flags |
3174+ get_read_flags ( flags) |
31703175 CEPH_OSD_FLAG_IGNORE_OVERLAY,
31713176 onack, NULL );
31723177 o->target .precalc_pgid = true ;
@@ -3306,8 +3311,8 @@ class Objecter : public md_config_obs_t, public Dispatcher {
33063311 int i = init_ops (ops, 1 , extra_ops);
33073312 ops[i].op .op = CEPH_OSD_OP_STAT;
33083313 C_Stat *fin = new C_Stat (psize, pmtime, onfinish);
3309- Op *o = new Op (oid, oloc, std::move (ops), flags | global_op_flags |
3310- CEPH_OSD_FLAG_READ | extra_read_flags , fin, objver);
3314+ Op *o = new Op (oid, oloc, std::move (ops),
3315+ get_read_flags (flags) , fin, objver);
33113316 o->snapid = snap;
33123317 o->outbl = &fin->bl ;
33133318 return o;
@@ -3338,8 +3343,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
33383343 ops[i].op .extent .truncate_size = 0 ;
33393344 ops[i].op .extent .truncate_seq = 0 ;
33403345 ops[i].op .flags = op_flags;
3341- Op *o = new Op (oid, oloc, std::move (ops), flags | global_op_flags |
3342- CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver,
3346+ Op *o = new Op (oid, oloc, std::move (ops), get_read_flags (flags), onfinish, objver,
33433347 nullptr , parent_trace);
33443348 o->snapid = snap;
33453349 o->outbl = pbl;
@@ -3371,8 +3375,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
33713375 ops[i].op .extent .truncate_seq = 0 ;
33723376 ops[i].indata = cmp_bl;
33733377 ops[i].op .flags = op_flags;
3374- Op *o = new Op (oid, oloc, std::move (ops), flags | global_op_flags |
3375- CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
3378+ Op *o = new Op (oid, oloc, std::move (ops), get_read_flags (flags), onfinish, objver);
33763379 o->snapid = snap;
33773380 return o;
33783381 }
@@ -3403,8 +3406,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
34033406 ops[i].op .extent .truncate_size = trunc_size;
34043407 ops[i].op .extent .truncate_seq = trunc_seq;
34053408 ops[i].op .flags = op_flags;
3406- Op *o = new Op (oid, oloc, std::move (ops), flags | global_op_flags |
3407- CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
3409+ Op *o = new Op (oid, oloc, std::move (ops), get_read_flags (flags), onfinish, objver);
34083410 o->snapid = snap;
34093411 o->outbl = pbl;
34103412 ceph_tid_t tid;
@@ -3422,8 +3424,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
34223424 ops[i].op .extent .length = len;
34233425 ops[i].op .extent .truncate_size = 0 ;
34243426 ops[i].op .extent .truncate_seq = 0 ;
3425- Op *o = new Op (oid, oloc, std::move (ops), flags | global_op_flags |
3426- CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
3427+ Op *o = new Op (oid, oloc, std::move (ops), get_read_flags (flags), onfinish, objver);
34273428 o->snapid = snap;
34283429 o->outbl = pbl;
34293430 ceph_tid_t tid;
@@ -3441,8 +3442,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
34413442 ops[i].op .xattr .value_len = 0 ;
34423443 if (name)
34433444 ops[i].indata .append (name, ops[i].op .xattr .name_len );
3444- Op *o = new Op (oid, oloc, std::move (ops), flags | global_op_flags |
3445- CEPH_OSD_FLAG_READ | extra_read_flags, onfinish, objver);
3445+ Op *o = new Op (oid, oloc, std::move (ops), get_read_flags (flags), onfinish, objver);
34463446 o->snapid = snap;
34473447 o->outbl = pbl;
34483448 ceph_tid_t tid;
@@ -3458,8 +3458,7 @@ class Objecter : public md_config_obs_t, public Dispatcher {
34583458 int i = init_ops (ops, 1 , extra_ops);
34593459 ops[i].op .op = CEPH_OSD_OP_GETXATTRS;
34603460 C_GetAttrs *fin = new C_GetAttrs (attrset, onfinish);
3461- Op *o = new Op (oid, oloc, std::move (ops), flags | global_op_flags |
3462- CEPH_OSD_FLAG_READ | extra_read_flags, fin, objver);
3461+ Op *o = new Op (oid, oloc, std::move (ops), get_read_flags (flags), fin, objver);
34633462 o->snapid = snap;
34643463 o->outbl = &fin->bl ;
34653464 ceph_tid_t tid;
0 commit comments