diff options
author | Yehuda Sadeh <yehuda@hq.newdream.net> | 2010-06-10 15:26:08 -0700 |
---|---|---|
committer | Yehuda Sadeh <yehuda@hq.newdream.net> | 2010-06-10 15:26:08 -0700 |
commit | 5d2e85d24a85b0c6074e5349a36f769538edf950 (patch) | |
tree | 538125973248b418a4ccc7fbe06995d9b4c30857 /src/objclass | |
parent | f34c5b9197eec2924175fe7cebf3a34552010f6b (diff) | |
download | ceph-5d2e85d24a85b0c6074e5349a36f769538edf950.tar.gz |
class: implement write_full interface
Diffstat (limited to 'src/objclass')
-rw-r--r-- | src/objclass/class_api.cc | 12 | ||||
-rw-r--r-- | src/objclass/objclass.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/objclass/class_api.cc b/src/objclass/class_api.cc index bb0d6de725e..2bfe212c983 100644 --- a/src/objclass/class_api.cc +++ b/src/objclass/class_api.cc @@ -195,6 +195,18 @@ int cls_cxx_write(cls_method_context_t hctx, int ofs, int len, bufferlist *inbl) return (*pctx)->pg->do_osd_ops(*pctx, ops, outbl); } +int cls_cxx_write_full(cls_method_context_t hctx, bufferlist *inbl) +{ + ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx; + vector<OSDOp> ops(1); + ops[0].op.op = CEPH_OSD_OP_WRITEFULL; + ops[0].op.extent.offset = 0; + ops[0].op.extent.length = inbl->length(); + ops[0].data = *inbl; + bufferlist outbl; + return (*pctx)->pg->do_osd_ops(*pctx, ops, outbl); +} + int cls_cxx_replace(cls_method_context_t hctx, int ofs, int len, bufferlist *inbl) { ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx; diff --git a/src/objclass/objclass.h b/src/objclass/objclass.h index 911a05129d6..ad09f4912f6 100644 --- a/src/objclass/objclass.h +++ b/src/objclass/objclass.h @@ -88,6 +88,7 @@ extern int cls_register_cxx_method(cls_handle_t hclass, const char *method, int extern int cls_cxx_read(cls_method_context_t hctx, int ofs, int len, bufferlist *bl); extern int cls_cxx_write(cls_method_context_t hctx, int ofs, int len, bufferlist *bl); +extern int cls_cxx_write_full(cls_method_context_t hctx, bufferlist *bl); extern int cls_cxx_replace(cls_method_context_t hctx, int ofs, int len, bufferlist *bl); extern int cls_cxx_snap_revert(cls_method_context_t hctx, snapid_t snapid); |