]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: pass std::vector<OSDOp>& to PG::submit_transaction().
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 23 Mar 2021 21:27:16 +0000 (21:27 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Mon, 10 May 2021 16:01:32 +0000 (18:01 +0200)
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 <rzarzyns@redhat.com>
src/crimson/osd/pg.cc
src/crimson/osd/pg.h

index fc60f77384eda10860ae24ef0ba52a7e1adedb4f..be9130cd48865ae91bcba489bb503fa5b5f2f4a3 100644 (file)
@@ -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<OSDOp>& 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<pg_log_entry_t> 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<Ret> PG::do_osd_ops_execute(
       ox.get_target());
     return std::move(ox).flush_changes_n_do_ops_effects(
       Ref<PG>{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<Ret> 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));
index ba477ee440408edcabec026e7d8b4e5d6bbc4a4d..1368c5035e12e24c6f38c75628df29630b99cd7a 100644 (file)
@@ -587,10 +587,12 @@ private:
     SuccessFunc&& success_func,
     FailureFunc&& failure_func);
   interruptible_future<Ref<MOSDOpReply>> do_pg_ops(Ref<MOSDOp> 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<OSDOp>& ops,
+    ObjectContextRef&& obc,
+    ceph::os::Transaction&& txn,
+    osd_op_params_t&& oop);
   interruptible_future<> repair_object(
     const hobject_t& oid,
     eversion_t& v);