From: Radoslaw Zarzynski Date: Tue, 24 Sep 2019 18:48:18 +0000 (+0200) Subject: crimson: introduce passing-further variant of safe_then() to errorator. X-Git-Tag: v15.1.0~801^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=213c631c06a20f026ff5abdb7b67ffba826c1b69;p=ceph.git crimson: introduce passing-further variant of safe_then() to errorator. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/common/errorator.h b/src/crimson/common/errorator.h index b798f7408b95..f8d8dc615990 100644 --- a/src/crimson/common/errorator.h +++ b/src/crimson/common/errorator.h @@ -481,6 +481,12 @@ struct errorator { std::forward(error_func_tail)...)); } + template + auto safe_then(ValueFunc&& value_func) { + return safe_then(std::forward(value_func), + errorator_type::pass_further{}); + } + template void then(Func&&) = delete; diff --git a/src/crimson/osd/ops_executer.cc b/src/crimson/osd/ops_executer.cc index d1994943788a..89fb31746640 100644 --- a/src/crimson/osd/ops_executer.cc +++ b/src/crimson/osd/ops_executer.cc @@ -376,7 +376,7 @@ OpsExecuter::execute_osd_op(OSDOp& osd_op) osd_op.rval = bl.length(); osd_op.outdata = std::move(bl); return seastar::now(); - }, read_errorator::pass_further{}); + }); }); case CEPH_OSD_OP_GETXATTR: return do_read_op([&osd_op] (auto& backend, const auto& os) { diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 8df8bc63f747..a614d61fcb6d 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -454,7 +454,7 @@ seastar::future> PG::do_osd_ops(Ref m) return submit_transaction(std::move(os), std::move(txn), *m); } }); - }, OpsExecuter::osd_op_errorator::pass_further{}); + }); }); }).safe_then([m,this] { auto reply = make_message(m.get(), 0, get_osdmap_epoch(), diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index e1b2cd788ba1..7e6f10e76a9a 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -250,7 +250,7 @@ PGBackend::read(const object_info_t& oi, } else { return crimson::ct_error::object_corrupted::make(); } - }, ll_read_errorator::pass_further{}); + }); } seastar::future<> PGBackend::stat( @@ -486,7 +486,7 @@ PGBackend::get_attr_errorator::future<> PGBackend::getxattr( osd_op.op.xattr.value_len = osd_op.outdata.length(); return seastar::now(); //ctx->delta_stats.num_rd_kb += shift_round_up(osd_op.outdata.length(), 10); - }, get_attr_errorator::pass_further{}); + }); //ctx->delta_stats.num_rd++; }