]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson: migrate make_error<T> to unthrowable_wrapper.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Thu, 12 Sep 2019 22:57:34 +0000 (00:57 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 20 Nov 2019 19:37:39 +0000 (20:37 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/common/errorator.h
src/crimson/os/cyan_store.cc
src/crimson/osd/pg_backend.cc

index 30ef2d02d7ca6df4dad550581e610028e7a9d315..2820f25ca7719b0a2f6ae54b3b182eeace544ecd 100644 (file)
@@ -27,16 +27,15 @@ struct unthrowable_wrapper {
 
   unthrowable_wrapper(const unthrowable_wrapper&) = delete;
   static constexpr unthrowable_wrapper instance{};
-  template <class T> friend const T& make_error();
+  [[nodiscard]] static const auto& make() {
+    return instance;
+  }
 
 private:
   // can be used only to initialize the `instance` member
   explicit unthrowable_wrapper() = default;
 };
 
-template <class T> [[nodiscard]] const T& make_error() {
-  return T::instance;
-}
 
 // TODO: let `exception` use other type than `ct_error`.
 template <class ErrorT>
index 75795c0639ed2ea69dfabfdb0b9c71c8f4f3c453..604c2d9262ca3f915b64d881890be016acd430d6 100644 (file)
@@ -182,11 +182,11 @@ CyanStore::read_errorator::future<ceph::bufferlist> CyanStore::read(
   logger().debug("{} {} {} {}~{}",
                 __func__, c->get_cid(), oid, offset, len);
   if (!c->exists) {
-    return crimson::make_error<ceph::ct_error::enoent>();
+    return crimson::ct_error::enoent::make();
   }
   ObjectRef o = c->get_object(oid);
   if (!o) {
-    return crimson::make_error<ceph::ct_error::enoent>();
+    return crimson::ct_error::enoent::make();
   }
   if (offset >= o->get_size())
     return seastar::make_ready_future<ceph::bufferlist>();
@@ -208,12 +208,12 @@ CyanStore::get_attr_errorator::future<ceph::bufferptr> CyanStore::get_attr(
                 __func__, c->get_cid(), oid);
   auto o = c->get_object(oid);
   if (!o) {
-    return crimson::make_error<crimson::ct_error::enoent>();
+    return crimson::ct_error::enoent::make();
   }
   if (auto found = o->xattr.find(name); found != o->xattr.end()) {
     return seastar::make_ready_future<ceph::bufferptr>(found->second);
   } else {
-    return crimson::make_error<crimson::ct_error::enodata>();
+    return crimson::ct_error::enodata::make();
   }
 }
 
index 81b47f70f400847e64dfb5787016fcd1f9f56c89..b20c2ae3c4d8a8ff260056f17a406586003b072c 100644 (file)
@@ -255,7 +255,7 @@ PGBackend::read(const object_info_t& oi,
       if (const bool is_fine = _read_verify_data(oi, bl); is_fine) {
         return seastar::make_ready_future<bufferlist>(std::move(bl));
       } else {
-        return crimson::make_error<ceph::ct_error::object_corrupted>();
+        return crimson::ct_error::object_corrupted::make();
       }
     }, ll_read_errorator::pass_further{});
 }