From eee4b843cfbaeb1a388e3c757e67d8924ca7a3d7 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Sat, 3 Aug 2019 09:14:00 +0200 Subject: [PATCH] crimson/osd: implement cls_cxx_write_full(). Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/objclass.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/crimson/osd/objclass.cc b/src/crimson/osd/objclass.cc index 4544212393b..73d4032c50c 100644 --- a/src/crimson/osd/objclass.cc +++ b/src/crimson/osd/objclass.cc @@ -120,9 +120,19 @@ int cls_cxx_write2(cls_method_context_t hctx, return 0; } -int cls_cxx_write_full(cls_method_context_t hctx, bufferlist *inbl) +int cls_cxx_write_full(cls_method_context_t hctx, bufferlist * const inbl) { - return 0; + OSDOp op; + op.op.op = CEPH_OSD_OP_WRITEFULL; + op.op.extent.offset = 0; + op.op.extent.length = inbl->length(); + op.indata = *inbl; + try { + reinterpret_cast(hctx)->do_osd_op(op).get(); + return 0; + } catch (ceph::osd::error& e) { + return -e.code().value(); + } } int cls_cxx_replace(cls_method_context_t hctx, -- 2.39.5