]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd: PG::log_operation() is now able to update hset
authorRadosław Zarzyński <rzarzyns@redhat.com>
Mon, 11 Sep 2023 14:24:27 +0000 (16:24 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 27 Jan 2026 14:37:36 +0000 (14:37 +0000)
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
src/crimson/osd/pg.cc
src/crimson/osd/pg.h
src/crimson/osd/replicated_backend.cc

index 7a11316e0a20a1f4679af1a1221e3c7879577f4d..bda0b314b834dd157908617de42fc525c0d637b3 100644 (file)
@@ -1324,6 +1324,7 @@ PG::handle_rep_op_fut PG::handle_rep_op(Ref<MOSDRepOp> req)
     txn);
 
   log_operation(std::move(log_entries),
+                std::nullopt,
                 req->pg_trim_to,
                 req->version,
                 req->pg_committed_to,
@@ -1368,6 +1369,7 @@ PG::interruptible_future<> PG::update_snap_map(
 
 void PG::log_operation(
   std::vector<pg_log_entry_t>&& logv,
+  const std::optional<pg_hit_set_history_t> &hset_history,
   const eversion_t &trim_to,
   const eversion_t &roll_forward_to,
   const eversion_t &pg_committed_to,
@@ -1379,6 +1381,9 @@ void PG::log_operation(
   if (is_primary()) {
     ceph_assert(trim_to <= peering_state.get_pg_committed_to());
   }
+  if (hset_history) {
+    peering_state.update_hset(*hset_history);
+  }
   auto last = logv.rbegin();
   if (is_primary() && last != logv.rend()) {
     DEBUGDPP("on primary, trimming projected log", *this);
index ecdb72b5ae590d70e815cd81a5363d0055d4d7a7..9b35246635a5947598fa219c51b1123989768f06 100644 (file)
@@ -669,6 +669,7 @@ public:
     ObjectStore::Transaction& t);
   void log_operation(
     std::vector<pg_log_entry_t>&& logv,
+    const std::optional<pg_hit_set_history_t> &hset_history,
     const eversion_t &trim_to,
     const eversion_t &roll_forward_to,
     const eversion_t &pg_commited_to,
index 4122439cda0d3c83e1bcb0d7b8d91cde11e6c4b9..9fc921294c6e2255e0103a2c5fc00c8830cce85a 100644 (file)
@@ -167,6 +167,7 @@ ReplicatedBackend::submit_transaction(
 
   pg.log_operation(
     std::move(log_entries),
+    std::nullopt,
     osd_op_p.pg_trim_to,
     osd_op_p.at_version,
     osd_op_p.pg_committed_to,