]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: dissect the lpr check into PG::old_peering_msg().
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Thu, 16 Dec 2021 16:31:35 +0000 (16:31 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Thu, 16 Dec 2021 16:47:57 +0000 (16:47 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/pg.cc
src/crimson/osd/pg.h

index 8213692f0a69892f3feb8e350528e4bb78a02dd7..8ad1198e099cd439b2ac151b8a3a0f7c8c0809e6 100644 (file)
@@ -1116,6 +1116,17 @@ void PG::handle_rep_op_reply(crimson::net::ConnectionRef conn,
   }
 }
 
+bool PG::old_peering_msg(const epoch_t map_epoch) const
+{
+  if (const epoch_t lpr = peering_state.get_last_peering_reset();
+      lpr > map_epoch) {
+    logger().debug("{}: pg changed {} after {}, dropping",
+                   __func__, get_info().history, map_epoch);
+    return true;
+  }
+  return false;
+}
+
 bool PG::can_discard_replica_op(const Message& m, epoch_t m_map_epoch) const
 {
   // if a repop is replied after a replica goes down in a new osdmap, and
@@ -1139,13 +1150,7 @@ bool PG::can_discard_replica_op(const Message& m, epoch_t m_map_epoch) const
   }
   // same pg?
   //  if pg changes *at all*, we reset and repeer!
-  if (epoch_t lpr = peering_state.get_last_peering_reset();
-      lpr > m_map_epoch) {
-    logger().debug("{}: pg changed {} after {}, dropping",
-                   __func__, get_info().history, m_map_epoch);
-    return true;
-  }
-  return false;
+  return old_peering_msg(m_map_epoch);
 }
 
 seastar::future<> PG::stop()
index 7b5e1b6846bbd969a3c4ec0a6e8f137f28b60549..0bf2e0c686fb7b13a3400dcf36b5688e95c4aea1 100644 (file)
@@ -707,6 +707,8 @@ public:
     return seastar::now();
   }
 
+  bool old_peering_msg(epoch_t map_epoch) const;
+
   template <typename MsgType>
   bool can_discard_replica_op(const MsgType& m) const {
     return can_discard_replica_op(m, m.map_epoch);