From: Radoslaw Zarzynski Date: Wed, 28 Aug 2019 15:10:08 +0000 (+0200) Subject: crimson/osd: implement cls_cxx_map_set_val(). X-Git-Tag: v15.1.0~1553^2~3 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=46eb81b1f49c32e3d918b788ab8e869438fd53f1;p=ceph.git crimson/osd: implement cls_cxx_map_set_val(). Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/objclass.cc b/src/crimson/osd/objclass.cc index 1716160e3294b..2090fbe7c3d9c 100644 --- a/src/crimson/osd/objclass.cc +++ b/src/crimson/osd/objclass.cc @@ -363,7 +363,19 @@ int cls_cxx_map_set_val(cls_method_context_t hctx, const string &key, bufferlist *inbl) { - return 0; + OSDOp op{ CEPH_OSD_OP_OMAPSETVALS }; + { + std::map m; + m[key] = *inbl; + encode(m, op.indata); + } + + try { + reinterpret_cast(hctx)->do_osd_op(op).get(); + return 0; + } catch (ceph::osd::error& e) { + return -e.code().value(); + } } int cls_cxx_map_set_vals(cls_method_context_t hctx,