From: Radoslaw Zarzynski Date: Tue, 23 Mar 2021 21:27:16 +0000 (+0000) Subject: crimson/osd: pass std::vector& to PG::submit_transaction(). X-Git-Tag: v17.1.0~1984^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=970cd1a29f09572594aa274af8957114224a122b;p=ceph.git crimson/osd: pass std::vector& to PG::submit_transaction(). This will allow in a moment to get rid of the dependency on `MOSDOp` on all paths of `PG::do_osd_ops_execute()`. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index fc60f77384ed..be9130cd4886 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -566,10 +566,12 @@ seastar::future<> PG::WaitForActiveBlocker::stop() return seastar::now(); } -PG::interruptible_future<> PG::submit_transaction(const OpInfo& op_info, - ObjectContextRef&& obc, - ceph::os::Transaction&& txn, - osd_op_params_t&& osd_op_p) +PG::interruptible_future<> PG::submit_transaction( + const OpInfo& op_info, + const std::vector& ops, + ObjectContextRef&& obc, + ceph::os::Transaction&& txn, + osd_op_params_t&& osd_op_p) { if (__builtin_expect(stopping, false)) { return seastar::make_exception_future<>( @@ -583,7 +585,6 @@ PG::interruptible_future<> PG::submit_transaction(const OpInfo& op_info, } std::vector log_entries; - const auto& ops = osd_op_p.req->ops; log_entries.emplace_back(obc->obs.exists ? pg_log_entry_t::MODIFY : pg_log_entry_t::DELETE, obc->obs.oi.soid, osd_op_p.at_version, obc->obs.oi.version, @@ -724,10 +725,10 @@ PG::do_osd_ops_iertr::future PG::do_osd_ops_execute( ox.get_target()); return std::move(ox).flush_changes_n_do_ops_effects( Ref{this}, - [this, m, &op_info] (auto&& txn, - auto&& obc, - auto&& osd_op_p, - bool user_modify) { + [this, m, &op_info, &ops] (auto&& txn, + auto&& obc, + auto&& osd_op_p, + bool user_modify) { logger().debug( "do_osd_ops_execute: {} - object {} submitting txn", *m, @@ -735,6 +736,7 @@ PG::do_osd_ops_iertr::future PG::do_osd_ops_execute( fill_op_params_bump_pg_version(osd_op_p, std::move(m), user_modify); return submit_transaction( op_info, + ops, std::move(obc), std::move(txn), std::move(osd_op_p)); diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index ba477ee44040..1368c5035e12 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -587,10 +587,12 @@ private: SuccessFunc&& success_func, FailureFunc&& failure_func); interruptible_future> do_pg_ops(Ref m); - interruptible_future<> submit_transaction(const OpInfo& op_info, - ObjectContextRef&& obc, - ceph::os::Transaction&& txn, - osd_op_params_t&& oop); + interruptible_future<> submit_transaction( + const OpInfo& op_info, + const std::vector& ops, + ObjectContextRef&& obc, + ceph::os::Transaction&& txn, + osd_op_params_t&& oop); interruptible_future<> repair_object( const hobject_t& oid, eversion_t& v);