]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore: use tuple return for omap_list throughout
authorSamuel Just <sjust@redhat.com>
Wed, 26 May 2021 22:40:32 +0000 (15:40 -0700)
committerSamuel Just <sjust@redhat.com>
Wed, 26 May 2021 23:57:42 +0000 (16:57 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/omap_manager.h
src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc
src/crimson/os/seastore/seastore.cc
src/crimson/os/seastore/seastore.h

index 1f5f0522d66d67a6b2de60b48b880b007753a238..f179e933fe6cd6ea56938e2c678aaa556cf58252 100644 (file)
@@ -143,7 +143,7 @@ public:
     }
   };
   using omap_list_ertr = base_ertr;
-  using omap_list_bare_ret = std::pair<
+  using omap_list_bare_ret = std::tuple<
     bool,
     std::map<std::string, bufferlist, std::less<>>>;
   using omap_list_ret = omap_list_ertr::future<omap_list_bare_ret>;
index 729c54b115b788cca930bbba3da306e72a7e0595..ca5479b49f6c323c10378ac4e9db2863b364dba3 100644 (file)
@@ -207,8 +207,8 @@ OMapInnerNode::list(
     iter_cend(),
     list_bare_ret(false, {}),
     [=, &start](auto &biter, auto &eiter, auto &ret) {
-      auto &complete = ret.first;
-      auto &result = ret.second;
+      auto &complete = std::get<0>(ret);
+      auto &result = std::get<1>(ret);
       return crimson::do_until(
        [&, config, oc, this]() -> list_ertr::future<bool> {
          if (biter == eiter  || result.size() == config.max_result_size) {
index ae03131f4e30300ab2f6fcb1fdf80e0fb2fef7e8..f99b763b59f475195fc217c1c44d788584dd4214 100644 (file)
@@ -293,9 +293,9 @@ SeaStore::get_attrs_ertr::future<SeaStore::attrs_t> SeaStore::get_attrs(
     c, oid, [=](auto &t, auto& onode) {
     auto& layout = onode.get_layout();
     return _omap_list(layout.xattr_root, t, std::nullopt,
-      OMapManager::omap_list_config_t::with_inclusive(false)).safe_then(
-      [&layout](auto p) {
-      auto& attrs = p.second;
+      OMapManager::omap_list_config_t::with_inclusive(false)
+    ).safe_then([&layout](auto p) {
+      auto& attrs = std::get<1>(p);
       ceph::bufferlist bl;
       if (layout.oi_size) {
         bl.append(ceph::bufferptr(&layout.oi[0], layout.oi_size));
@@ -399,17 +399,16 @@ SeaStore::omap_get_values(
       }
     });
 }
-OMapManager::omap_list_ret SeaStore::_omap_list(
+
+SeaStore::_omap_list_ret SeaStore::_omap_list(
   const omap_root_le_t& omap_root,
   Transaction& t,
   const std::optional<std::string>& start,
-  OMapManager::omap_list_config_t config)
+  OMapManager::omap_list_config_t config) const
 {
-  using ret_bare_t = std::pair<bool, SeaStore::omap_values_t>;
-  using int_ret_t = OMapManager::omap_list_ertr::future<ret_bare_t>;
   auto root = omap_root.get();
   if (root.is_null()) {
-    return seastar::make_ready_future<ret_bare_t>(
+    return seastar::make_ready_future<_omap_list_bare_ret>(
       true, omap_values_t{}
     );
   }
@@ -417,7 +416,7 @@ OMapManager::omap_list_ret SeaStore::_omap_list(
     BtreeOMapManager(*transaction_manager),
     root,
     start,
-    [&t, config](auto &manager, auto& root, auto& start) -> int_ret_t {
+    [&t, config](auto &manager, auto& root, auto& start) {
     return manager.omap_list(root, t, start, config);
   });
 }
@@ -432,16 +431,14 @@ SeaStore::omap_get_values_ret_t SeaStore::omap_list(
   LOG_PREFIX(SeaStore::omap_list);
   DEBUG("{} {}", c->get_cid(), oid);
   using ret_bare_t = std::tuple<bool, SeaStore::omap_values_t>;
-  using int_ret_t = omap_int_ertr_t::future<ret_bare_t>;
   return repeat_with_onode<ret_bare_t>(
     c,
     oid,
-    [this, config, &start](auto &t, auto &onode) -> int_ret_t {
-      return _omap_list(onode.get_layout().omap_root, t, start, config)
-      .safe_then([](auto&& p) {
-        return seastar::make_ready_future<ret_bare_t>(
-          p.first, p.second);
-      });
+    [this, config, &start](auto &t, auto &onode) {
+      return _omap_list(
+       onode.get_layout().omap_root,
+       t, start, config
+      );
     });
 }
 
index 3ceec720a357ade07e7487ed9497017e47a19318..fde3c8a26f0caab668d9440cf8e7de3efa660680 100644 (file)
@@ -195,17 +195,20 @@ private:
       });
   }
 
+  using _omap_list_bare_ret = OMapManager::omap_list_bare_ret;
+  using _omap_list_ret = OMapManager::omap_list_ret;
+  _omap_list_ret _omap_list(
+    const omap_root_le_t& omap_root,
+    Transaction& t,
+    const std::optional<std::string>& start,
+    OMapManager::omap_list_config_t config) const;
+
   friend class SeaStoreOmapIterator;
   omap_get_values_ret_t omap_list(
     CollectionRef ch,
     const ghobject_t &oid,
     const std::optional<string> &_start,
     OMapManager::omap_list_config_t config);
-  OMapManager::omap_list_ret _omap_list(
-    const omap_root_le_t& omap_root,
-    Transaction& t,
-    const std::optional<std::string>& start,
-    OMapManager::omap_list_config_t config);
 
   SegmentManagerRef segment_manager;
   TransactionManagerRef transaction_manager;