]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
objclass: add create method
authorJosh Durgin <josh.durgin@inktank.com>
Tue, 26 Jun 2012 20:07:41 +0000 (13:07 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Thu, 28 Jun 2012 19:33:20 +0000 (12:33 -0700)
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
src/objclass/class_api.cc
src/objclass/objclass.h

index 8b23640a6ccfa5acf0f29d286eef6db3e22d3190..b922759800d3458a56f85a73720a6eb802e9e79f 100644 (file)
@@ -173,6 +173,15 @@ int cls_get_request_origin(cls_method_context_t hctx, entity_inst_t *origin)
   return 0;
 }
 
+int cls_cxx_create(cls_method_context_t hctx, bool exclusive)
+{
+  ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx;
+  vector<OSDOp> ops(1);
+  ops[0].op.op = CEPH_OSD_OP_CREATE;
+  ops[0].op.flags = (exclusive ? CEPH_OSD_OP_FLAG_EXCL : 0);
+  return (*pctx)->pg->do_osd_ops(*pctx, ops);
+}
+
 int cls_cxx_stat(cls_method_context_t hctx, uint64_t *size, time_t *mtime)
 {
   ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx;
index 1313c8903103aba746bfd2d095427a2f132dddab..01ffe8e5ff5bc029f53f89bf419746b6e02cf8b7 100644 (file)
@@ -96,6 +96,7 @@ typedef int (*cls_method_cxx_call_t)(cls_method_context_t ctx,
 extern int cls_register_cxx_method(cls_handle_t hclass, const char *method, int flags,
                                   cls_method_cxx_call_t class_call, cls_method_handle_t *handle);
 
+extern int cls_cxx_create(cls_method_context_t hctx, bool exclusive);
 extern int cls_cxx_stat(cls_method_context_t hctx, uint64_t *size, time_t *mtime);
 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);