]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: move (removed, purged) snap update into a helper
authorSage Weil <sage@redhat.com>
Fri, 7 Jun 2019 15:57:04 +0000 (10:57 -0500)
committerSage Weil <sage@redhat.com>
Tue, 2 Jul 2019 13:37:50 +0000 (08:37 -0500)
This is trivial at the moment, but we'll make it clever next.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc
src/mon/OSDMonitor.h

index e7c7aeeb7dcc5c060506776085d261968e5febb3..982b92acfc523e358d1c33790cb632d9c48475cc 100644 (file)
@@ -1582,21 +1582,18 @@ void OSDMonitor::encode_pending(MonitorDBStore::TransactionRef t)
     for (auto q = i.second.begin();
         q != i.second.end();
         ++q) {
-      bufferlist v;
-      string k = make_removed_snap_key_value(i.first, q.get_start(),
-                                    q.get_len(), pending_inc.epoch, &v);
-      t->put(OSD_SNAP_PREFIX, k, v);
+      insert_snap_update(false, i.first, q.get_start(), q.get_end(),
+                        pending_inc.epoch,
+                        t);
     }
   }
   for (auto& i : pending_inc.new_purged_snaps) {
     for (auto q = i.second.begin();
         q != i.second.end();
         ++q) {
-      bufferlist v;
-      string k = make_snap_purged_key_value(i.first, q.get_start(),
-                                           q.get_len(), pending_inc.epoch,
-                                           &v);
-      t->put(OSD_SNAP_PREFIX, k, v);
+      insert_snap_update(true, i.first, q.get_start(), q.get_end(),
+                        pending_inc.epoch,
+                        t);
     }
   }
 
@@ -6271,6 +6268,19 @@ int OSDMonitor::_lookup_snap(bool purged,
   return 0;
 }
 
+void OSDMonitor::insert_snap_update(
+  bool purged,
+  int64_t pool,
+  snapid_t start, snapid_t end,
+  epoch_t epoch,
+  MonitorDBStore::TransactionRef t)
+{
+  bufferlist v;
+  string k = _make_snap_key_value(purged, pool, start, end - start,
+                                 pending_inc.epoch, &v);
+  t->put(OSD_SNAP_PREFIX, k, v);
+}
+
 bool OSDMonitor::try_prune_purged_snaps()
 {
   if (!mon->mgrstatmon()->is_readable()) {
index b7e40e2fa9846832ed35df2980efe6d061d5b236..d797be0f91656524c8f184d0c8ade58526cb8af8 100644 (file)
@@ -536,6 +536,13 @@ private:
     return _lookup_snap(true, pool, snap, begin,end);
   }
 
+  void insert_snap_update(
+    bool purged,
+    int64_t pool,
+    snapid_t start, snapid_t end,
+    epoch_t epoch,
+    MonitorDBStore::TransactionRef t);
+
   bool prepare_set_flag(MonOpRequestRef op, int flag);
   bool prepare_unset_flag(MonOpRequestRef op, int flag);