summaryrefslogtreecommitdiff
path: root/src/objclass
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@hq.newdream.net>2012-03-07 22:18:57 -0800
committerYehuda Sadeh <yehuda@hq.newdream.net>2012-03-07 22:18:57 -0800
commit765962dc8cb0d37abfa48b4e0592d533318d2828 (patch)
tree2eeaf9bb6a38cfc6f390da3d1a923f618757d73a /src/objclass
parente0744390f60527abda013b36b6c2f36139120c1a (diff)
downloadceph-765962dc8cb0d37abfa48b4e0592d533318d2828.tar.gz
rgw: add cls_cxx_map_clear
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
Diffstat (limited to 'src/objclass')
-rw-r--r--src/objclass/class_api.cc11
-rw-r--r--src/objclass/objclass.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/objclass/class_api.cc b/src/objclass/class_api.cc
index 861c0006207..59ddfd7d959 100644
--- a/src/objclass/class_api.cc
+++ b/src/objclass/class_api.cc
@@ -366,6 +366,17 @@ int cls_cxx_map_write_key(cls_method_context_t hctx, string key, bufferlist *inb
return (*pctx)->pg->do_osd_ops(*pctx, ops);
}
+int cls_cxx_map_clear(cls_method_context_t hctx)
+{
+ ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx;
+ vector<OSDOp> ops(1);
+ OSDOp& op = ops[0];
+
+ op.op.op = CEPH_OSD_OP_OMAPCLEAR;
+
+ return (*pctx)->pg->do_osd_ops(*pctx, ops);
+}
+
int cls_cxx_map_write_header(cls_method_context_t hctx, bufferlist *inbl)
{
ReplicatedPG::OpContext **pctx = (ReplicatedPG::OpContext **)hctx;
diff --git a/src/objclass/objclass.h b/src/objclass/objclass.h
index 6ccfc6282eb..b0ec28bd6ef 100644
--- a/src/objclass/objclass.h
+++ b/src/objclass/objclass.h
@@ -93,6 +93,7 @@ extern int cls_cxx_write(cls_method_context_t hctx, int ofs, int len, bufferlist
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);
+extern int cls_cxx_map_clear(cls_method_context_t hctx);
extern int cls_cxx_map_read_all_keys(cls_method_context_t hctx, std::map<string, bufferlist> *keys);
extern int cls_cxx_map_read_keys(cls_method_context_t hctx, string& start_after, string& filter_prefix,
uint64_t max, std::map<string, bufferlist> *keys);