]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: use vector for remove_tags in gc aio
authorYehuda Sadeh <yehuda@redhat.com>
Fri, 23 Feb 2018 16:41:19 +0000 (08:41 -0800)
committerJesse Williamson <nerd.cpp@gmail.com>
Thu, 11 Jul 2019 17:32:58 +0000 (10:32 -0700)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 9d37caccd907a7e58a836c5bcd9fb00a3dda8216)

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 fba47d4601a10136726d54e186dc834c9db2489f..c3eabdcccc6d30871ced6078e250a64273e29e82 100644 (file)
@@ -3397,11 +3397,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 c1c20b54633b578e1cc1d8d8d8b9a1e62682ca95..f7e85fbc724b36f198ac6832f96adb5b09565b47 100644 (file)
@@ -739,7 +739,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 ab9f53cf1d6282228f19e5e232cf593512a165ff..ebbf55d91a618c01d4e21d1d7fb7aad606c1f0ad 100644 (file)
@@ -548,7 +548,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 52b37c55c6c4f95c58f10f39e227c88bcc6ceb0d..407cadf53b1b4db9160d2cb3c8c8398953cb53c1 100644 (file)
@@ -886,7 +886,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 7e982f966fc5581746a0b97a61c1e2bc8ba9d093..bd4474a6b910697958b34658f9712cef2b874eab 100644 (file)
@@ -81,7 +81,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);
@@ -152,7 +152,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};
@@ -236,7 +236,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 8fd46085390520c551b232134483dc6083fe358d..a140abcf03cb485d86a2cac4fc02a71766ad6156 100644 (file)
@@ -774,7 +774,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 */