]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: avoid using variadic future
authorKefu Chai <kchai@redhat.com>
Sat, 23 May 2020 08:19:19 +0000 (16:19 +0800)
committerKefu Chai <kchai@redhat.com>
Sat, 23 May 2020 08:27:49 +0000 (16:27 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/ops_executer.cc
src/crimson/osd/osd.cc

index b905dc2f479eb90895706c96918e09acdd081007..b6d557a31cb209fabfa4bfe839f4a5a4bedf3ac1 100644 (file)
@@ -797,7 +797,7 @@ static seastar::future<ceph::bufferlist> do_pgls_common(
   return backend.list_objects(lower_bound, limit).then(
     [&backend, filter, nspace](auto&& ret) {
       auto& [objects, next] = ret;
-      return seastar::when_all_succeed(
+      return seastar::when_all(
         seastar::map_reduce(std::move(objects),
           [&backend, filter, nspace](const hobject_t& obj) {
             if (obj.get_namespace() == nspace) {
@@ -818,7 +818,9 @@ static seastar::future<ceph::bufferlist> do_pgls_common(
             return std::move(entries);
           }),
         seastar::make_ready_future<hobject_t>(next));
-    }).then([pg_end](entries_t entries, hobject_t next) {
+    }).then([pg_end](auto&& ret) {
+      auto entries = std::move(std::get<0>(ret).get0());
+      auto next = std::move(std::get<1>(ret).get0());
       pg_ls_response_t response;
       response.handle = next.is_max() ? pg_end : next;
       response.entries = std::move(entries);
index e0fd90ba4ce909a681e8753ae202fe02e993a863..3591173f7559b73c669d76f8255e80762eece4c7 100644 (file)
@@ -536,12 +536,12 @@ seastar::future<Ref<PG>> OSD::make_pg(cached_map_t create_map,
       return store->open_collection(cid);
     }
   };
-  return seastar::when_all_succeed(
+  return seastar::when_all(
     std::move(get_pool_info),
     std::move(get_collection)
-  ).then([pgid, create_map, this] (auto info,
-                                  auto coll) {
-    auto [pool, name, ec_profile] = std::move(info);
+  ).then([pgid, create_map, this] (auto&& ret) {
+    auto [pool, name, ec_profile] = std::move(std::get<0>(ret).get0());
+    auto coll = std::move(std::get<1>(ret).get0());
     return seastar::make_ready_future<Ref<PG>>(
       new PG{pgid,
             pg_shard_t{whoami, pgid.shard},