From 3b2abb1b69ae789deb30ecec06791d344b2d68d2 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Fri, 13 Sep 2019 00:57:34 +0200 Subject: [PATCH] crimson: migrate make_error to unthrowable_wrapper. Signed-off-by: Radoslaw Zarzynski --- src/crimson/common/errorator.h | 7 +++---- src/crimson/os/cyan_store.cc | 8 ++++---- src/crimson/osd/pg_backend.cc | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/crimson/common/errorator.h b/src/crimson/common/errorator.h index 30ef2d02d7c..2820f25ca77 100644 --- a/src/crimson/common/errorator.h +++ b/src/crimson/common/errorator.h @@ -27,16 +27,15 @@ struct unthrowable_wrapper { unthrowable_wrapper(const unthrowable_wrapper&) = delete; static constexpr unthrowable_wrapper instance{}; - template 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 [[nodiscard]] const T& make_error() { - return T::instance; -} // TODO: let `exception` use other type than `ct_error`. template diff --git a/src/crimson/os/cyan_store.cc b/src/crimson/os/cyan_store.cc index 75795c0639e..604c2d9262c 100644 --- a/src/crimson/os/cyan_store.cc +++ b/src/crimson/os/cyan_store.cc @@ -182,11 +182,11 @@ CyanStore::read_errorator::future CyanStore::read( logger().debug("{} {} {} {}~{}", __func__, c->get_cid(), oid, offset, len); if (!c->exists) { - return crimson::make_error(); + return crimson::ct_error::enoent::make(); } ObjectRef o = c->get_object(oid); if (!o) { - return crimson::make_error(); + return crimson::ct_error::enoent::make(); } if (offset >= o->get_size()) return seastar::make_ready_future(); @@ -208,12 +208,12 @@ CyanStore::get_attr_errorator::future CyanStore::get_attr( __func__, c->get_cid(), oid); auto o = c->get_object(oid); if (!o) { - return crimson::make_error(); + return crimson::ct_error::enoent::make(); } if (auto found = o->xattr.find(name); found != o->xattr.end()) { return seastar::make_ready_future(found->second); } else { - return crimson::make_error(); + return crimson::ct_error::enodata::make(); } } diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index 81b47f70f40..b20c2ae3c4d 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -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(std::move(bl)); } else { - return crimson::make_error(); + return crimson::ct_error::object_corrupted::make(); } }, ll_read_errorator::pass_further{}); } -- 2.39.5