std::move(obc),
osd_ops,
std::as_const(op_info),
- get_do_osd_ops_params(),
- // success_func
- [] {
- return PG::do_osd_ops_iertr::now();
- },
- // failure_func
- [] (const std::error_code& e) {
- return PG::do_osd_ops_iertr::now();
- }
+ get_do_osd_ops_params()
).safe_then_unpack_interruptible(
[](auto submitted, auto all_completed) {
return all_completed.handle_error_interruptible(
ObjectContextRef obc,
std::vector<OSDOp>& ops,
const OpInfo &op_info,
- const do_osd_ops_params_t &&msg_params,
- do_osd_ops_success_func_t success_func,
- do_osd_ops_failure_func_t failure_func)
+ const do_osd_ops_params_t &&msg_params)
{
// This overload is generally used for internal client requests,
// use an empty SnapContext.
SnapContext{}
),
ops,
- std::move(success_func),
- std::move(failure_func));
+ // success_func
+ [] {
+ return do_osd_ops_iertr::now();
+ },
+ // failure_func
+ [] (const std::error_code& e) {
+ return do_osd_ops_iertr::now();
+ });
});
}
ObjectContextRef obc,
const OpInfo &op_info,
const SnapContext& snapc);
- using do_osd_ops_success_func_t =
- std::function<do_osd_ops_iertr::future<>()>;
- using do_osd_ops_failure_func_t =
- std::function<do_osd_ops_iertr::future<>(const std::error_code&)>;
+
struct do_osd_ops_params_t;
do_osd_ops_iertr::future<MURef<MOSDOpReply>> log_reply(
Ref<MOSDOp> m,
ObjectContextRef obc,
std::vector<OSDOp>& ops,
const OpInfo &op_info,
- const do_osd_ops_params_t &¶ms,
- do_osd_ops_success_func_t success_func,
- do_osd_ops_failure_func_t failure_func);
+ const do_osd_ops_params_t &¶ms);
template <class Ret, class SuccessFunc, class FailureFunc>
do_osd_ops_iertr::future<pg_rep_op_fut_t<Ret>> do_osd_ops_execute(
seastar::lw_shared_ptr<OpsExecuter> ox,