]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd: implement cls_cxx_read2().
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Mon, 5 Aug 2019 11:53:13 +0000 (13:53 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Sat, 24 Aug 2019 01:33:58 +0000 (03:33 +0200)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/objclass.cc

index a28870261b51e53dc3fd72344ed1dcc467c82b34..e76e681ee54f2b97a7f55f528fbd431322d57d13 100644 (file)
@@ -109,7 +109,18 @@ int cls_cxx_read2(cls_method_context_t hctx,
                   bufferlist *outbl,
                   uint32_t op_flags)
 {
-  return 0;
+  OSDOp op;
+  op.op.op = CEPH_OSD_OP_SYNC_READ;
+  op.op.extent.offset = ofs;
+  op.op.extent.length = len;
+  op.op.flags = op_flags;
+  try {
+    reinterpret_cast<ceph::osd::OpsExecuter*>(hctx)->do_osd_op(op).get();
+  } catch (ceph::osd::error& e) {
+    return -e.code().value();
+  }
+  outbl->claim(op.outdata);
+  return outbl->length();
 }
 
 int cls_cxx_write2(cls_method_context_t hctx,