]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: unify remove_pool_snap callers 56430/head
authorMatan Breizman <mbreizma@redhat.com>
Sun, 3 Mar 2024 13:43:10 +0000 (13:43 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Sun, 24 Mar 2024 12:04:16 +0000 (12:04 +0000)
No changes in behavior.

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
(cherry picked from commit 70c1d79d1d0f52cd65541f59cedb00e39cba3f76)

src/mon/OSDMonitor.cc
src/mon/OSDMonitor.h

index 740c037603cf189d0fd0af66746afced9b88bc1a..612a41c7d1bf723fa565d3c9dc050b1c4f4710b2 100644 (file)
@@ -4591,6 +4591,17 @@ void OSDMonitor::send_incremental(epoch_t first,
   }
 }
 
+bool OSDMonitor::remove_pool_snap(std::string_view snapname,
+                                  pg_pool_t &pp, int64_t pool) {
+  snapid_t snapid = pp.snap_exists(snapname);
+  if (snapid) {
+    pp.remove_snap(snapid);
+    pending_inc.new_removed_snaps[pool].insert(snapid);
+    return true;
+  }
+  return false;
+};
+
 int OSDMonitor::get_version(version_t ver, bufferlist& bl)
 {
   return get_version(ver, mon.get_quorum_con_features(), bl);
@@ -12953,11 +12964,8 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       pp = &pending_inc.new_pools[pool];
       *pp = *p;
     }
-    snapid_t sn = pp->snap_exists(snapname.c_str());
-    if (sn) {
-      pp->remove_snap(sn);
+    if (remove_pool_snap(snapname, *pp, pool)) {
       pp->set_snap_epoch(pending_inc.epoch);
-      pending_inc.new_removed_snaps[pool].insert(sn);
       ss << "removed pool " << poolstr << " snap " << snapname;
     } else {
       ss << "already removed pool " << poolstr << " snap " << snapname;
@@ -14173,10 +14181,7 @@ bool OSDMonitor::prepare_pool_op(MonOpRequestRef op)
 
   case POOL_OP_DELETE_SNAP:
     {
-      snapid_t s = pp.snap_exists(m->name.c_str());
-      if (s) {
-       pp.remove_snap(s);
-       pending_inc.new_removed_snaps[m->pool].insert(s);
+      if (remove_pool_snap(m->name, pp, m->pool)) {
        changed = true;
       }
     }
index 992fb9deadc9ec00f2fb0987f7dec3b8e2cc8066..6c065b5de1563da21a70fc98794c31eac796ee04 100644 (file)
@@ -405,6 +405,10 @@ private:
   MOSDMap *build_incremental(epoch_t first, epoch_t last, uint64_t features);
   void send_full(MonOpRequestRef op);
   void send_incremental(MonOpRequestRef op, epoch_t first);
+
+  bool remove_pool_snap(std::string_view snapname,
+                        pg_pool_t &pp, int64_t pool);
+
 public:
   /**
    * Make sure the existing (up) OSDs support the given features