@@ -682,7 +682,8 @@ int librados::IoCtxImpl::operate(const object_t& oid, ::ObjectOperation *o,
682682int librados::IoCtxImpl::operate_read (const object_t & oid,
683683 ::ObjectOperation *o,
684684 bufferlist *pbl,
685- int flags)
685+ int flags,
686+ int flags_mask)
686687{
687688 if (!o->size ())
688689 return 0 ;
@@ -701,6 +702,7 @@ int librados::IoCtxImpl::operate_read(const object_t& oid,
701702 oid, oloc,
702703 *o, snap_seq, pbl,
703704 flags | extra_op_flags,
705+ flags_mask,
704706 onack, &ver);
705707 objecter->op_submit (objecter_op);
706708
@@ -741,7 +743,7 @@ int librados::IoCtxImpl::aio_operate_read(const object_t &oid,
741743 trace.event (" init root span" );
742744 Objecter::Op *objecter_op = objecter->prepare_read_op (
743745 oid, oloc,
744- *o, snap_seq, pbl, flags | extra_op_flags,
746+ *o, snap_seq, pbl, flags | extra_op_flags, - 1 ,
745747 oncomplete, &c->objver , nullptr , 0 , &trace);
746748 objecter->op_submit (objecter_op, &c->tid );
747749 trace.event (" rados operate read submitted" );
@@ -883,7 +885,7 @@ int librados::IoCtxImpl::aio_sparse_read(const object_t oid,
883885
884886 Objecter::Op *o = objecter->prepare_read_op (
885887 oid, oloc,
886- onack->m_ops , snapid, NULL , extra_op_flags,
888+ onack->m_ops , snapid, NULL , extra_op_flags, - 1 ,
887889 onack, &c->objver );
888890 objecter->op_submit (o, &c->tid );
889891 return 0 ;
@@ -932,7 +934,7 @@ int librados::IoCtxImpl::aio_cmpext(const object_t& oid,
932934 onack->m_ops .cmpext (off, cmp_len, cmp_buf, NULL );
933935
934936 Objecter::Op *o = objecter->prepare_read_op (
935- oid, oloc, onack->m_ops , snap_seq, NULL , extra_op_flags, onack, &c->objver );
937+ oid, oloc, onack->m_ops , snap_seq, NULL , extra_op_flags, - 1 , onack, &c->objver );
936938 objecter->op_submit (o, &c->tid );
937939 return 0 ;
938940}
@@ -1311,7 +1313,7 @@ int librados::IoCtxImpl::exec(const object_t& oid,
13111313 ::ObjectOperation rd;
13121314 prepare_assert_ops (&rd);
13131315 rd.call (cls, method, inbl);
1314- return operate_read (oid, &rd, &outbl);
1316+ return operate_read (oid, &rd, &outbl, 0 , ~(CEPH_OSD_FLAG_LOCALIZE_READS | CEPH_OSD_FLAG_BALANCE_READS) );
13151317}
13161318
13171319int librados::IoCtxImpl::aio_exec (const object_t & oid, AioCompletionImpl *c,
@@ -1331,7 +1333,7 @@ int librados::IoCtxImpl::aio_exec(const object_t& oid, AioCompletionImpl *c,
13311333 prepare_assert_ops (&rd);
13321334 rd.call (cls, method, inbl);
13331335 Objecter::Op *o = objecter->prepare_read_op (
1334- oid, oloc, rd, snap_seq, outbl, extra_op_flags, oncomplete, &c->objver );
1336+ oid, oloc, rd, snap_seq, outbl, extra_op_flags, ~(CEPH_OSD_FLAG_LOCALIZE_READS | CEPH_OSD_FLAG_BALANCE_READS), oncomplete, &c->objver );
13351337 objecter->op_submit (o, &c->tid );
13361338 return 0 ;
13371339}
@@ -1357,7 +1359,7 @@ int librados::IoCtxImpl::aio_exec(const object_t& oid, AioCompletionImpl *c,
13571359 prepare_assert_ops (&rd);
13581360 rd.call (cls, method, inbl);
13591361 Objecter::Op *o = objecter->prepare_read_op (
1360- oid, oloc, rd, snap_seq, &c->bl , extra_op_flags, oncomplete, &c->objver );
1362+ oid, oloc, rd, snap_seq, &c->bl , extra_op_flags, ~(CEPH_OSD_FLAG_LOCALIZE_READS | CEPH_OSD_FLAG_BALANCE_READS), oncomplete, &c->objver );
13611363 objecter->op_submit (o, &c->tid );
13621364 return 0 ;
13631365}
0 commit comments