]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/cls/rgw/cls_rgw_client.cc
import ceph nautilus 14.2.2
[ceph.git] / ceph / src / cls / rgw / cls_rgw_client.cc
index 1f25068f9f3cc5e329da39bbe32efea05475109a..97426ed7661747bf8e788e15f30ae8656fa77a25 100644 (file)
@@ -209,12 +209,13 @@ void cls_rgw_bucket_complete_op(ObjectWriteOperation& o, RGWModifyOp op, string&
   o.exec(RGW_CLASS, RGW_BUCKET_COMPLETE_OP, in);
 }
 
-static bool issue_bucket_list_op(librados::IoCtx& io_ctx, const string& oid,
-                                const cls_rgw_obj_key& start_obj,
-                                const string& filter_prefix,
-                                uint32_t num_entries, bool list_versions,
-                                BucketIndexAioManager *manager,
-                                rgw_cls_list_ret *pdata) {
+void cls_rgw_bucket_list_op(librados::ObjectReadOperation& op,
+                            const cls_rgw_obj_key& start_obj,
+                            const std::string& filter_prefix,
+                            uint32_t num_entries,
+                            bool list_versions,
+                            rgw_cls_list_ret* result)
+{
   bufferlist in;
   rgw_cls_list_op call;
   call.start_obj = start_obj;
@@ -223,8 +224,18 @@ static bool issue_bucket_list_op(librados::IoCtx& io_ctx, const string& oid,
   call.list_versions = list_versions;
   encode(call, in);
 
+  op.exec(RGW_CLASS, RGW_BUCKET_LIST, in, new ClsBucketIndexOpCtx<rgw_cls_list_ret>(result, NULL));
+}
+
+static bool issue_bucket_list_op(librados::IoCtx& io_ctx, const string& oid,
+                                const cls_rgw_obj_key& start_obj,
+                                const string& filter_prefix,
+                                uint32_t num_entries, bool list_versions,
+                                BucketIndexAioManager *manager,
+                                rgw_cls_list_ret *pdata) {
   librados::ObjectReadOperation op;
-  op.exec(RGW_CLASS, RGW_BUCKET_LIST, in, new ClsBucketIndexOpCtx<rgw_cls_list_ret>(pdata, NULL));
+  cls_rgw_bucket_list_op(op, start_obj, filter_prefix,
+                         num_entries, list_versions, pdata);
   return manager->aio_operate(io_ctx, oid, &op);
 }