]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: Add m_op_flags in AioRead to track op flags for rbd read.
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 11 Dec 2014 06:06:19 +0000 (14:06 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Fri, 12 Dec 2014 06:23:35 +0000 (14:23 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/librbd/AioRequest.cc
src/librbd/AioRequest.h
src/librbd/internal.cc

index e03f67d52eeffaa3f6acafb6ef45273241a40c08..ab54a65810ba295821534540cc1694f782efec34 100644 (file)
@@ -99,6 +99,8 @@ namespace librbd {
     } else {
       op.read(m_object_off, m_object_len, &m_read_data, NULL);
     }
+    op.set_op_flags2(m_op_flags);
+
     r = m_ioctx->aio_operate(m_oid, rados_completion, &op, flags, NULL);
 
     rados_completion->release();
index d6103f9a195cfba50b992870b1ac5885139f314a..31cfee9a2965413f5d0f7ea7874786c6b27674e7 100644 (file)
@@ -65,11 +65,11 @@ namespace librbd {
            uint64_t objectno, uint64_t offset, uint64_t len,
            vector<pair<uint64_t,uint64_t> >& be,
            librados::snap_t snap_id, bool sparse,
-           Context *completion)
+           Context *completion, int op_flags)
       : AioRequest(ictx, oid, objectno, offset, len, snap_id, completion,
                   false),
-       m_buffer_extents(be),
-       m_tried_parent(false), m_sparse(sparse) {
+       m_buffer_extents(be), m_tried_parent(false),
+       m_sparse(sparse), m_op_flags(op_flags) {
     }
     virtual ~AioRead() {}
     virtual bool should_complete(int r);
@@ -86,6 +86,7 @@ namespace librbd {
     vector<pair<uint64_t,uint64_t> > m_buffer_extents;
     bool m_tried_parent;
     bool m_sparse;
+    int m_op_flags;
   };
 
   class AbstractWrite : public AioRequest {
index 093ef0c86a4ddcee53b580a6955959a9cbc5dfbe..2e63941714910753c9d563f7be266035980acf53 100644 (file)
@@ -3256,7 +3256,7 @@ reprotect_and_return_err:
        AioRead *req = new AioRead(ictx, q->oid.name, 
                                   q->objectno, q->offset, q->length,
                                   q->buffer_extents,
-                                  snap_id, true, req_comp);
+                                  snap_id, true, req_comp, op_flags);
        req_comp->set_req(req);
        c->add_request();