]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/*: rename errorator-loop.h into errorator-utils.h
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 20 Jan 2026 15:23:22 +0000 (15:23 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 24 Mar 2026 16:06:24 +0000 (16:06 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
(cherry picked from commit 682e4ff4322a895a0bdb6c9cc0d00a516499baad)

src/crimson/common/errorator-loop.h [deleted file]
src/crimson/common/errorator-utils.h [new file with mode: 0644]
src/crimson/os/seastore/cache.h
src/crimson/os/seastore/extent_placement_manager.cc
src/crimson/os/seastore/journal/circular_bounded_journal.cc
src/crimson/os/seastore/random_block_manager/nvme_block_device.cc
src/crimson/os/seastore/random_block_manager/rbm_device.cc
src/crimson/os/seastore/segment_manager/block.cc
src/crimson/os/seastore/segment_manager/zbd.cc
src/test/crimson/test_errorator.cc
src/test/crimson/test_errorator_abort.cc

diff --git a/src/crimson/common/errorator-loop.h b/src/crimson/common/errorator-loop.h
deleted file mode 100644 (file)
index 2af1c4b..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
-// vim: ts=8 sw=2 sts=2 expandtab expandtab
-
-#pragma once
-
-#include <seastar/core/future.hh>
-
-#include "crimson/common/errorator.h"
-
-
-namespace crimson {
-template <class... AllowedErrors>
-class parallel_for_each_state final : private seastar::continuation_base<> {
-  using future_t = typename errorator<AllowedErrors...>::template future<>;
-  std::vector<future_t> _incomplete;
-  seastar::promise<> _result;
-  std::exception_ptr _ex;
-private:
-  void wait_for_one() noexcept {
-    while (!_incomplete.empty() && _incomplete.back().available()) {
-      if (_incomplete.back().failed()) {
-        _ex = _incomplete.back().get_exception();
-      }
-      _incomplete.pop_back();
-    }
-    if (!_incomplete.empty()) {
-      seastar::internal::set_callback(std::move(_incomplete.back()),
-                                      static_cast<continuation_base<>*>(this));
-      _incomplete.pop_back();
-      return;
-    }
-    if (__builtin_expect(bool(_ex), false)) {
-      _result.set_exception(std::move(_ex));
-    } else {
-      _result.set_value();
-    }
-    delete this;
-  }
-  virtual void run_and_dispose() noexcept override {
-    if (_state.failed()) {
-      _ex = std::move(_state).get_exception();
-    }
-    _state = {};
-    wait_for_one();
-  }
-  task* waiting_task() noexcept override { return _result.waiting_task(); }
-public:
-  parallel_for_each_state(size_t n) {
-    _incomplete.reserve(n);
-  }
-  void add_future(future_t&& f) {
-    _incomplete.push_back(std::move(f));
-  }
-  future_t get_future() {
-    auto ret = _result.get_future();
-    wait_for_one();
-    return ret;
-  }
-};
-
-template <typename Iterator, typename Func, typename... AllowedErrors>
-static inline typename errorator<AllowedErrors...>::template future<>
-parallel_for_each(Iterator first, Iterator last, Func&& func) noexcept {
-  parallel_for_each_state<AllowedErrors...>* s = nullptr;
-  // Process all elements, giving each future the following treatment:
-  //   - available, not failed: do nothing
-  //   - available, failed: collect exception in ex
-  //   - not available: collect in s (allocating it if needed)
-  for (;first != last; ++first) {
-    auto f = seastar::futurize_invoke(std::forward<Func>(func), *first);
-    if (!f.available() || f.failed()) {
-      if (!s) {
-        auto n = (seastar::internal::iterator_range_estimate_vector_capacity(
-              first, last) + 1);
-        s = new parallel_for_each_state<AllowedErrors...>(n);
-      }
-      s->add_future(std::move(f));
-    }
-  }
-  // If any futures were not available, hand off to parallel_for_each_state::start().
-  // Otherwise we can return a result immediately.
-  if (s) {
-    // s->get_future() takes ownership of s (and chains it to one of the futures it contains)
-    // so this isn't a leak
-    return s->get_future();
-  }
-  return seastar::make_ready_future<>();
-}
-
-} // namespace crimson
diff --git a/src/crimson/common/errorator-utils.h b/src/crimson/common/errorator-utils.h
new file mode 100644 (file)
index 0000000..2af1c4b
--- /dev/null
@@ -0,0 +1,90 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
+// vim: ts=8 sw=2 sts=2 expandtab expandtab
+
+#pragma once
+
+#include <seastar/core/future.hh>
+
+#include "crimson/common/errorator.h"
+
+
+namespace crimson {
+template <class... AllowedErrors>
+class parallel_for_each_state final : private seastar::continuation_base<> {
+  using future_t = typename errorator<AllowedErrors...>::template future<>;
+  std::vector<future_t> _incomplete;
+  seastar::promise<> _result;
+  std::exception_ptr _ex;
+private:
+  void wait_for_one() noexcept {
+    while (!_incomplete.empty() && _incomplete.back().available()) {
+      if (_incomplete.back().failed()) {
+        _ex = _incomplete.back().get_exception();
+      }
+      _incomplete.pop_back();
+    }
+    if (!_incomplete.empty()) {
+      seastar::internal::set_callback(std::move(_incomplete.back()),
+                                      static_cast<continuation_base<>*>(this));
+      _incomplete.pop_back();
+      return;
+    }
+    if (__builtin_expect(bool(_ex), false)) {
+      _result.set_exception(std::move(_ex));
+    } else {
+      _result.set_value();
+    }
+    delete this;
+  }
+  virtual void run_and_dispose() noexcept override {
+    if (_state.failed()) {
+      _ex = std::move(_state).get_exception();
+    }
+    _state = {};
+    wait_for_one();
+  }
+  task* waiting_task() noexcept override { return _result.waiting_task(); }
+public:
+  parallel_for_each_state(size_t n) {
+    _incomplete.reserve(n);
+  }
+  void add_future(future_t&& f) {
+    _incomplete.push_back(std::move(f));
+  }
+  future_t get_future() {
+    auto ret = _result.get_future();
+    wait_for_one();
+    return ret;
+  }
+};
+
+template <typename Iterator, typename Func, typename... AllowedErrors>
+static inline typename errorator<AllowedErrors...>::template future<>
+parallel_for_each(Iterator first, Iterator last, Func&& func) noexcept {
+  parallel_for_each_state<AllowedErrors...>* s = nullptr;
+  // Process all elements, giving each future the following treatment:
+  //   - available, not failed: do nothing
+  //   - available, failed: collect exception in ex
+  //   - not available: collect in s (allocating it if needed)
+  for (;first != last; ++first) {
+    auto f = seastar::futurize_invoke(std::forward<Func>(func), *first);
+    if (!f.available() || f.failed()) {
+      if (!s) {
+        auto n = (seastar::internal::iterator_range_estimate_vector_capacity(
+              first, last) + 1);
+        s = new parallel_for_each_state<AllowedErrors...>(n);
+      }
+      s->add_future(std::move(f));
+    }
+  }
+  // If any futures were not available, hand off to parallel_for_each_state::start().
+  // Otherwise we can return a result immediately.
+  if (s) {
+    // s->get_future() takes ownership of s (and chains it to one of the futures it contains)
+    // so this isn't a leak
+    return s->get_future();
+  }
+  return seastar::make_ready_future<>();
+}
+
+} // namespace crimson
index 16c9d617385178ac30ffffa06bfe503863e41e18..b465271e2461bdd7e822841405184718239f147f 100644 (file)
@@ -8,7 +8,7 @@
 #include "include/buffer.h"
 
 #include "crimson/common/errorator.h"
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "crimson/os/seastore/backref_entry.h"
 #include "crimson/os/seastore/cached_extent.h"
 #include "crimson/os/seastore/extent_placement_manager.h"
index 47c24de5739a09388dee1d7a9700a932d8934556..838c9a18b19182d46ff62c9dfb1dc88a199b1d60 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "crimson/os/seastore/extent_placement_manager.h"
 
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "crimson/common/config_proxy.h"
 #include "crimson/os/seastore/logging.h"
 
index 8e9d5ada6b41a097e524ede57044cd866629b09b..6ebdaf9f5e10f12e473dda4a4bb93e72b299fc3f 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <boost/iterator/counting_iterator.hpp>
 
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "include/intarith.h"
 #include "crimson/os/seastore/async_cleaner.h"
 #include "crimson/os/seastore/journal/circular_bounded_journal.h"
index 9676e711adbde1368dba56b6bdbda522710811d6..88d259b1521b84e8f1def68887f104e987a40b35 100644 (file)
@@ -8,7 +8,7 @@
 #include <seastar/coroutine/parallel_for_each.hh>
 
 #include "crimson/common/log.h"
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 
 #include "include/buffer.h"
 #include "rbm_device.h"
index 623bc6d4cfe90d08c7e95b6d1a31bd70d8132bb9..e81a959bbbd9e2fd288ceb9d9550ef1192b48562 100644 (file)
@@ -7,7 +7,7 @@
 #include <fcntl.h>
 
 #include "crimson/common/log.h"
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "crimson/os/seastore/logging.h"
 
 #include "include/buffer.h"
index 67e07dec7cce41b7b6368d7a09cc3b4f8bc83836..d871026d442cf66672c059661ee22faf9aa80cbb 100644 (file)
@@ -14,7 +14,7 @@
 #include "include/buffer.h"
 
 #include "crimson/common/config_proxy.h"
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "crimson/common/coroutine.h"
 
 #include "crimson/os/seastore/logging.h"
index 2a194914e16550d3ee6b74c16a30d46664ebb531..3eef55cc2b244173b0694db772c4bf3ebe19278d 100644 (file)
@@ -9,7 +9,7 @@
 #include "crimson/os/seastore/segment_manager/zbd.h"
 #include "crimson/common/config_proxy.h"
 #include "crimson/os/seastore/logging.h"
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "include/buffer.h"
 
 SET_SUBSYS(seastore_device);
index 3d3be4ca62b6f1bf376ade801a62e50323839539..ebbd04c0881a0223a180c3a88f101c09751183c5 100644 (file)
@@ -7,7 +7,7 @@
 #include "test/crimson/gtest_seastar.h"
 
 #include "crimson/common/errorator.h"
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "crimson/common/log.h"
 #include "seastar/core/sleep.hh"
 
index 1a42cd1eefddf8e9c4d9a4f0dc85e8234d0a0180..b90c48f47f925a26eff05a1e8077f46ed933f3cb 100644 (file)
@@ -7,7 +7,7 @@
 #include "test/crimson/gtest_seastar.h"
 
 #include "crimson/common/errorator.h"
-#include "crimson/common/errorator-loop.h"
+#include "crimson/common/errorator-utils.h"
 #include "crimson/common/log.h"
 #include "seastar/core/sleep.hh"