]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: use vector for remove_tags in gc aio 20546/head
authorYehuda Sadeh <yehuda@redhat.com>
Fri, 23 Feb 2018 16:41:19 +0000 (08:41 -0800)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 23 Feb 2018 19:21:52 +0000 (11:21 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/cls/rgw/cls_rgw.cc
src/cls/rgw/cls_rgw_client.cc
src/cls/rgw/cls_rgw_client.h
src/cls/rgw/cls_rgw_ops.h
src/rgw/rgw_gc.cc
src/rgw/rgw_gc.h
src/test/cls_rgw/test_cls_rgw.cc

index 9f004c519736719c0b1e4fc5343bff45c8be927f..2c37bf8315ed74c514fe02b77f1cd273010ca8ae 100644 (file)
@@ -3364,11 +3364,9 @@ static int rgw_cls_gc_list(cls_method_context_t hctx, bufferlist *in, bufferlist
   return 0;
 }
 
-static int gc_remove(cls_method_context_t hctx, list<string>& tags)
+static int gc_remove(cls_method_context_t hctx, vector<string>& tags)
 {
-  list<string>::iterator iter;
-
-  for (iter = tags.begin(); iter != tags.end(); ++iter) {
+  for (auto iter = tags.begin(); iter != tags.end(); ++iter) {
     string& tag = *iter;
     cls_rgw_gc_obj_info info;
     int ret = gc_omap_get(hctx, GC_OBJ_NAME_INDEX, tag, &info);
index a7304348d825c1c107db47d2b3e7153565071c43..a0560b2b36f48062ba60a190baa17fc2e7f40aa7 100644 (file)
@@ -714,7 +714,7 @@ int cls_rgw_gc_list(IoCtx& io_ctx, string& oid, string& marker, uint32_t max, bo
   return r;
 }
 
-void cls_rgw_gc_remove(librados::ObjectWriteOperation& op, const list<string>& tags)
+void cls_rgw_gc_remove(librados::ObjectWriteOperation& op, const vector<string>& tags)
 {
   bufferlist in;
   cls_rgw_gc_remove_op call;
index 51f9c6e7ad3d62f32631ac360ed89b9c2330491d..86fc3a4f1f8d534e8655cf6484498a393cc8e46f 100644 (file)
@@ -516,7 +516,7 @@ void cls_rgw_gc_defer_entry(librados::ObjectWriteOperation& op, uint32_t expirat
 int cls_rgw_gc_list(librados::IoCtx& io_ctx, string& oid, string& marker, uint32_t max, bool expired_only,
                     list<cls_rgw_gc_obj_info>& entries, bool *truncated, string& next_marker);
 
-void cls_rgw_gc_remove(librados::ObjectWriteOperation& op, const list<string>& tags);
+void cls_rgw_gc_remove(librados::ObjectWriteOperation& op, const vector<string>& tags);
 
 /* lifecycle */
 int cls_rgw_lc_get_head(librados::IoCtx& io_ctx, string& oid, cls_rgw_lc_obj_head& head);
index cbf059da6da790a6d2dd72b4e3d2ce30baf68d6a..48ef7ddce710a3fd0a5fc6f060d482961472531e 100644 (file)
@@ -887,7 +887,7 @@ struct cls_rgw_gc_list_ret {
 WRITE_CLASS_ENCODER(cls_rgw_gc_list_ret)
 
 struct cls_rgw_gc_remove_op {
-  list<string> tags;
+  vector<string> tags;
 
   cls_rgw_gc_remove_op() {}
 
index 19d5b3ae9e0847199566dd48509c5d97ddd7b6a5..2570a752e99a0959b082c5433e3290109348665a 100644 (file)
@@ -80,7 +80,7 @@ int RGWGC::defer_chain(const string& tag, bool sync)
   return store->gc_aio_operate(obj_names[i], &op);
 }
 
-int RGWGC::remove(int index, const std::list<string>& tags, AioCompletion **pc)
+int RGWGC::remove(int index, const std::vector<string>& tags, AioCompletion **pc)
 {
   ObjectWriteOperation op;
   cls_rgw_gc_remove(op, tags);
@@ -144,7 +144,7 @@ class RGWGCIOManager {
   };
 
   deque<IO> ios;
-  vector<std::list<string> > remove_tags;
+  vector<std::vector<string> > remove_tags;
 
 #define MAX_AIO_DEFAULT 10
   size_t max_aio{MAX_AIO_DEFAULT};
@@ -228,7 +228,7 @@ done:
     drain_ios();
   }
 
-  void flush_remove_tags(int index, list<string>& rt) {
+  void flush_remove_tags(int index, vector<string>& rt) {
     IO index_io;
     index_io.type = IO::IndexIO;
     index_io.index = index;
index e901888ee8fb18739ae838b909f5f17642f5fa40..e9390e8db6c6a8cc8aa9d1eba445973c6c52a2c3 100644 (file)
@@ -50,7 +50,7 @@ public:
   void add_chain(librados::ObjectWriteOperation& op, cls_rgw_obj_chain& chain, const string& tag);
   int send_chain(cls_rgw_obj_chain& chain, const string& tag, bool sync);
   int defer_chain(const string& tag, bool sync);
-  int remove(int index, const std::list<string>& tags, librados::AioCompletion **pc);
+  int remove(int index, const std::vector<string>& tags, librados::AioCompletion **pc);
 
   void initialize(CephContext *_cct, RGWRados *_store);
   void finalize();
index 1d72dce2a183ed020bf3810f4a8c73f014b54a92..0826f767cb512f3e83e255536807c9563864906b 100644 (file)
@@ -673,7 +673,7 @@ TEST(cls_rgw, gc_defer)
   ASSERT_EQ(0, truncated);
 
   librados::ObjectWriteOperation op3;
-  list<string> tags;
+  vector<string> tags;
   tags.push_back(tag);
 
   /* remove chain */