]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon/OSDMonitor: refactor snap key and value helpers
authorSage Weil <sage@redhat.com>
Fri, 7 Jun 2019 15:48:24 +0000 (10:48 -0500)
committerSage Weil <sage@redhat.com>
Tue, 2 Jul 2019 13:37:50 +0000 (08:37 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc
src/mon/OSDMonitor.h

index cbe4dd35612d740a71ba65cef7aea30b1d891ed8..9e984afe4ef524d704afdec082c0832c84ce8458 100644 (file)
@@ -6214,17 +6214,17 @@ string OSDMonitor::make_snap_epoch_key(int64_t pool, epoch_t epoch)
   return k;
 }
 
-string OSDMonitor::make_removed_snap_key(int64_t pool, snapid_t snap)
+string OSDMonitor::_make_snap_key(bool purged, int64_t pool, snapid_t snap)
 {
   char k[80];
-  snprintf(k, sizeof(k), "removed_snap_%llu_%016llx",
+  snprintf(k, sizeof(k), "%s_snap_%llu_%016llx",
+          purged ? "purged" : "removed",
           (unsigned long long)pool, (unsigned long long)snap);
   return k;
 }
 
-
-string OSDMonitor::make_removed_snap_key_value(
-  int64_t pool, snapid_t snap, snapid_t num,
+string OSDMonitor::_make_snap_key_value(
+  bool purged, int64_t pool, snapid_t snap, snapid_t num,
   epoch_t epoch, bufferlist *v)
 {
   // encode the *last* epoch in the key so that we can use forward
@@ -6232,27 +6232,9 @@ string OSDMonitor::make_removed_snap_key_value(
   encode(snap, *v);
   encode(snap + num, *v);
   encode(epoch, *v);
-  return make_removed_snap_key(pool, snap + num - 1);
+  return _make_snap_key(purged, pool, snap + num - 1);
 }
 
-string OSDMonitor::make_purged_snap_key(int64_t pool, snapid_t snap)
-{
-  char k[80];
-  snprintf(k, sizeof(k), "purged_snap_%llu_%016llx",
-          (unsigned long long)pool, (unsigned long long)snap);
-  return k;
-}
-string OSDMonitor::make_purged_snap_key_value(
-  int64_t pool, snapid_t snap, snapid_t num,
-  epoch_t epoch, bufferlist *v)
-{
-  // encode the *last* epoch in the key so that we can use forward
-  // iteration only to search for an epoch in an interval.
-  encode(snap, *v);
-  encode(snap + num, *v);
-  encode(epoch, *v);
-  return make_purged_snap_key(pool, snap + num - 1);
-}
 
 int OSDMonitor::lookup_purged_snap(int64_t pool, snapid_t snap,
                                   snapid_t *begin, snapid_t *end)
index fefadb2a94d4548cbab53e96aa196e7e8d5be32d..af7becb679d72ade2fa530ce4e45c14a58c85815 100644 (file)
@@ -505,12 +505,25 @@ private:
   bool _is_pending_removed_snap(int64_t pool_id, snapid_t snapid);
 
   string make_snap_epoch_key(int64_t pool, epoch_t epoch);
-  string make_removed_snap_key(int64_t pool, snapid_t snap);
+  string _make_snap_key(bool purged, int64_t pool, snapid_t snap);
+  string _make_snap_key_value(bool purged,
+                             int64_t pool, snapid_t snap, snapid_t num,
+                             epoch_t epoch, bufferlist *v);
+  string make_removed_snap_key(int64_t pool, snapid_t snap) {
+    return _make_snap_key(false, pool, snap);
+  }
   string make_removed_snap_key_value(int64_t pool, snapid_t snap, snapid_t num,
-                                    epoch_t epoch, bufferlist *v);
-  string make_purged_snap_key(int64_t pool, snapid_t snap);
+                                    epoch_t epoch, bufferlist *v) {
+    return _make_snap_key_value(false, pool, snap, num, epoch, v);
+  }
+  string make_purged_snap_key(int64_t pool, snapid_t snap) {
+    return _make_snap_key(true, pool, snap);
+  }
   string make_purged_snap_key_value(int64_t pool, snapid_t snap, snapid_t num,
-                                   epoch_t epoch, bufferlist *v);
+                                   epoch_t epoch, bufferlist *v) {
+    return _make_snap_key_value(true, pool, snap, num, epoch, v);
+  }
+
   bool try_prune_purged_snaps();
   int lookup_purged_snap(int64_t pool, snapid_t snap,
                         snapid_t *begin, snapid_t *end);