From: Radoslaw Zarzynski Date: Thu, 12 Sep 2019 22:57:34 +0000 (+0200) Subject: crimson: migrate make_error to unthrowable_wrapper. X-Git-Tag: v15.1.0~801^2~35 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3b2abb1b69ae789deb30ecec06791d344b2d68d2;p=ceph.git crimson: migrate make_error to unthrowable_wrapper. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/common/errorator.h b/src/crimson/common/errorator.h index 30ef2d02d7ca..2820f25ca771 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 75795c0639ed..604c2d9262ca 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 81b47f70f400..b20c2ae3c4d8 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{}); }