From: Yehuda Sadeh Date: Fri, 23 Feb 2018 16:41:19 +0000 (-0800) Subject: rgw: use vector for remove_tags in gc aio X-Git-Tag: v13.0.2~123^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9d37caccd907a7e58a836c5bcd9fb00a3dda8216;p=ceph.git rgw: use vector for remove_tags in gc aio Signed-off-by: Yehuda Sadeh --- diff --git a/src/cls/rgw/cls_rgw.cc b/src/cls/rgw/cls_rgw.cc index 9f004c519736..2c37bf8315ed 100644 --- a/src/cls/rgw/cls_rgw.cc +++ b/src/cls/rgw/cls_rgw.cc @@ -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& tags) +static int gc_remove(cls_method_context_t hctx, vector& tags) { - list::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); diff --git a/src/cls/rgw/cls_rgw_client.cc b/src/cls/rgw/cls_rgw_client.cc index a7304348d825..a0560b2b36f4 100644 --- a/src/cls/rgw/cls_rgw_client.cc +++ b/src/cls/rgw/cls_rgw_client.cc @@ -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& tags) +void cls_rgw_gc_remove(librados::ObjectWriteOperation& op, const vector& tags) { bufferlist in; cls_rgw_gc_remove_op call; diff --git a/src/cls/rgw/cls_rgw_client.h b/src/cls/rgw/cls_rgw_client.h index 51f9c6e7ad3d..86fc3a4f1f8d 100644 --- a/src/cls/rgw/cls_rgw_client.h +++ b/src/cls/rgw/cls_rgw_client.h @@ -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& entries, bool *truncated, string& next_marker); -void cls_rgw_gc_remove(librados::ObjectWriteOperation& op, const list& tags); +void cls_rgw_gc_remove(librados::ObjectWriteOperation& op, const vector& tags); /* lifecycle */ int cls_rgw_lc_get_head(librados::IoCtx& io_ctx, string& oid, cls_rgw_lc_obj_head& head); diff --git a/src/cls/rgw/cls_rgw_ops.h b/src/cls/rgw/cls_rgw_ops.h index cbf059da6da7..48ef7ddce710 100644 --- a/src/cls/rgw/cls_rgw_ops.h +++ b/src/cls/rgw/cls_rgw_ops.h @@ -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 tags; + vector tags; cls_rgw_gc_remove_op() {} diff --git a/src/rgw/rgw_gc.cc b/src/rgw/rgw_gc.cc index 19d5b3ae9e08..2570a752e99a 100644 --- a/src/rgw/rgw_gc.cc +++ b/src/rgw/rgw_gc.cc @@ -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& tags, AioCompletion **pc) +int RGWGC::remove(int index, const std::vector& tags, AioCompletion **pc) { ObjectWriteOperation op; cls_rgw_gc_remove(op, tags); @@ -144,7 +144,7 @@ class RGWGCIOManager { }; deque ios; - vector > remove_tags; + vector > 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& rt) { + void flush_remove_tags(int index, vector& rt) { IO index_io; index_io.type = IO::IndexIO; index_io.index = index; diff --git a/src/rgw/rgw_gc.h b/src/rgw/rgw_gc.h index e901888ee8fb..e9390e8db6c6 100644 --- a/src/rgw/rgw_gc.h +++ b/src/rgw/rgw_gc.h @@ -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& tags, librados::AioCompletion **pc); + int remove(int index, const std::vector& tags, librados::AioCompletion **pc); void initialize(CephContext *_cct, RGWRados *_store); void finalize(); diff --git a/src/test/cls_rgw/test_cls_rgw.cc b/src/test/cls_rgw/test_cls_rgw.cc index 1d72dce2a183..0826f767cb51 100644 --- a/src/test/cls_rgw/test_cls_rgw.cc +++ b/src/test/cls_rgw/test_cls_rgw.cc @@ -673,7 +673,7 @@ TEST(cls_rgw, gc_defer) ASSERT_EQ(0, truncated); librados::ObjectWriteOperation op3; - list tags; + vector tags; tags.push_back(tag); /* remove chain */