]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: avoid using variadic future 35091/head
authorKefu Chai <kchai@redhat.com>
Fri, 15 May 2020 16:38:12 +0000 (00:38 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 15 May 2020 16:38:57 +0000 (00:38 +0800)
it is deprecated by seastar. let's use future<tuple<...>> instead

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/ops_executer.cc

index 5d36f3ac8e4be896ba5fdaa9da2b19d22c72e125..d67387ce8eff85acdb53a8cb9f6c8e343fddbe68 100644 (file)
@@ -564,11 +564,13 @@ static seastar::future<ceph::bufferlist> do_pgnls_common(
           // the sole purpose of this chaining is to pass `next` to 2nd
           // stage altogether with items
           logger().debug("do_pgnls_common: 1st done");
-          return seastar::make_ready_future<decltype(items), decltype(next)>(
-            std::move(items), std::move(next));
+          return seastar::make_ready_future<
+            std::tuple<std::vector<hobject_t>, hobject_t>>(
+              std::make_tuple(std::move(items), std::move(next)));
       });
   }).then(
-    [pg_end, filter] (const std::vector<hobject_t>& items, auto next) {
+    [pg_end, filter] (auto&& ret) {
+      auto& [items, next] = ret;
       auto is_matched = [] (const auto& obj) {
         return !obj.is_min();
       };