]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Remove Snapset::snaps users (2/2) 56612/head
authorMatan Breizman <mbreizma@redhat.com>
Sun, 19 Jan 2025 10:04:55 +0000 (10:04 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Sun, 19 Jan 2025 10:12:48 +0000 (10:12 +0000)
See: 591a1ae9f0c

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/osd/ops_executer.cc
src/osd/PrimaryLogPG.cc
src/osd/osd_types_fmt.h
src/test/osd/scrubber_generators.cc
src/test/osd/scrubber_generators.h
src/test/osd/scrubber_test_datasets.cc

index cbc35c21a041927cc0b1451bcd594d8f0121f008..c18af2170c607fed2b3865ce8dcb25fe16024650 100644 (file)
@@ -912,7 +912,6 @@ pg_log_entry_t OpsExecuter::prepare_head_update(
   if (snapc.seq > obc->ssc->snapset.seq) {
      // update snapset with latest snap context
      obc->ssc->snapset.seq = snapc.seq;
-     obc->ssc->snapset.snaps.clear();
   }
 
   pg_log_entry_t ret{
index 44f8e85b5ef6c34a4333a78f9d629c0ae81ecaed..cff0f6ad1ca84dea26bef9b0d594a58244ff4278 100644 (file)
@@ -4895,15 +4895,6 @@ int PrimaryLogPG::trim_object(
     head_obc->obs.oi = object_info_t(head_oid);
     t->remove(head_oid);
   } else {
-    if (get_osdmap()->require_osd_release < ceph_release_t::octopus) {
-      // filter SnapSet::snaps for the benefit of pre-octopus
-      // peers. This is perhaps overly conservative in that I'm not
-      // certain they need this, but let's be conservative here.
-      dout(10) << coid << " filtering snapset on " << head_oid << dendl;
-      snapset.filter(pool.info);
-    } else {
-      snapset.snaps.clear();
-    }
     dout(10) << coid << " writing updated snapset on " << head_oid
             << ", snapset is " << snapset << dendl;
     ctx->log.push_back(
@@ -8765,11 +8756,6 @@ void PrimaryLogPG::make_writeable(OpContext *ctx)
   if (snapc.seq > ctx->new_snapset.seq) {
     // update snapset with latest snap context
     ctx->new_snapset.seq = snapc.seq;
-    if (get_osdmap()->require_osd_release < ceph_release_t::octopus) {
-      ctx->new_snapset.snaps = snapc.snaps;
-    } else {
-      ctx->new_snapset.snaps.clear();
-    }
   }
   dout(20) << "make_writeable " << soid
           << " done, snapset=" << ctx->new_snapset << dendl;
@@ -10194,11 +10180,6 @@ void PrimaryLogPG::finish_promote(int r, CopyResults *results,
 
     OpContextUPtr tctx = simple_opc_create(obc);
     tctx->at_version = get_next_version();
-    if (get_osdmap()->require_osd_release < ceph_release_t::octopus) {
-      filter_snapc(tctx->new_snapset.snaps);
-    } else {
-      tctx->new_snapset.snaps.clear();
-    }
     vector<snapid_t> new_clones;
     map<snapid_t, vector<snapid_t>> new_clone_snaps;
     for (vector<snapid_t>::iterator i = tctx->new_snapset.clones.begin();
@@ -10870,17 +10851,7 @@ int PrimaryLogPG::start_flush(
           << " " << (blocking ? "blocking" : "non-blocking/best-effort")
           << dendl;
 
-  bool preoctopus_compat =
-    get_osdmap()->require_osd_release < ceph_release_t::octopus;
-  SnapSet snapset;
-  if (preoctopus_compat) {
-    // for pre-octopus compatibility, filter SnapSet::snaps.  not
-    // certain we need this, but let's be conservative.
-    snapset = obc->ssc->snapset.get_filtered(pool.info);
-  } else {
-    // NOTE: change this to a const ref when we remove this compat code
-    snapset = obc->ssc->snapset;
-  }
+  const SnapSet& snapset = obc->ssc->snapset;
 
   if ((obc->obs.oi.has_manifest() && obc->obs.oi.manifest.is_chunked())
       || force_dedup) {
@@ -10893,7 +10864,7 @@ int PrimaryLogPG::start_flush(
   // verify there are no (older) check for dirty clones
   {
     dout(20) << " snapset " << snapset << dendl;
-    vector<snapid_t>::reverse_iterator p = snapset.clones.rbegin();
+    vector<snapid_t>::const_reverse_iterator p = snapset.clones.rbegin();
     while (p != snapset.clones.rend() && *p >= soid.snap)
       ++p;
     if (p != snapset.clones.rend()) {
@@ -11004,7 +10975,7 @@ int PrimaryLogPG::start_flush(
     }
 
     snapid_t prev_snapc = 0;
-    for (vector<snapid_t>::reverse_iterator citer = snapset.clones.rbegin();
+    for (vector<snapid_t>::const_reverse_iterator citer = snapset.clones.rbegin();
         citer != snapset.clones.rend();
         ++citer) {
       if (*citer < soid.snap) {
index 100ce6e4646b3909bb7b5ff55f8d93ee5d8e4084..d142e95f1b0e87e23255e74ee705acaac0a7bba7 100644 (file)
@@ -253,9 +253,8 @@ struct formatter<SnapSet> {
 
     } else {
       return fmt::format_to(ctx.out(),
-                           "{}={}:{}",
+                           "{}={}",
                            snps.seq,
-                           snps.snaps,
                            snps.clone_snaps);
     }
   }
index 19f64bb05ad8728ae51d175d37671499d1cb5804..94e2ba46e9ba43232c9dd584ea2898f34ea58f87 100644 (file)
@@ -34,7 +34,7 @@ std::pair<bufferlist, std::vector<snapid_t>> create_object_snapset(
   encode(sns, bl);
 
   // extract the set of object snaps
-  return {bl, sns.snaps};
+  return {bl, sns.clones};
 }
 
 RealObjsConfList ScrubGenerator::make_real_objs_conf(
index 43b123250cc1e4a7cdd4ccdce37f4cd54425ab43..47f63e52401b6d6fe19cc92f1bd7eb273a31a1ea 100644 (file)
@@ -133,7 +133,6 @@ struct SnapsetMockData {
   using clone_snaps_cooker = CookedCloneSnaps (*)();
 
   snapid_t seq;
-  std::vector<snapid_t> snaps;  // descending
   std::vector<snapid_t> clones;         // ascending
 
   std::map<snapid_t, interval_set<uint64_t>> clone_overlap;  // overlap w/ next
@@ -143,13 +142,11 @@ struct SnapsetMockData {
 
 
   SnapsetMockData(snapid_t seq,
-                 std::vector<snapid_t> snaps,
                  std::vector<snapid_t> clones,
                  std::map<snapid_t, interval_set<uint64_t>> clone_overlap,
                  std::map<snapid_t, uint64_t> clone_size,
                  std::map<snapid_t, std::vector<snapid_t>> clone_snaps)
       : seq(seq)
-      , snaps(snaps)
       , clones(clones)
       , clone_overlap(clone_overlap)
       , clone_size(clone_size)
@@ -157,11 +154,9 @@ struct SnapsetMockData {
   {}
 
   SnapsetMockData(snapid_t seq,
-                 std::vector<snapid_t> snaps,
                  std::vector<snapid_t> clones,
                  clone_snaps_cooker func)
       : seq{seq}
-      , snaps{snaps}
       , clones(clones)
   {
     auto [clone_size_, clone_snaps_, clone_overlap_] = func();
@@ -174,7 +169,6 @@ struct SnapsetMockData {
   {
     SnapSet ss;
     ss.seq = seq;
-    ss.snaps = snaps;
     ss.clones = clones;
     ss.clone_overlap = clone_overlap;
     ss.clone_size = clone_size;
@@ -257,10 +251,10 @@ struct fmt::formatter<ScrubGenerator::RealObj> {
   {
     using namespace ScrubGenerator;
     return fmt::format_to(ctx.out(),
-                         "RealObj(gh:{}, dt:{}, snaps:{})",
+                         "RealObj(gh:{}, dt:{}, clones:{})",
                          rlo.ghobj,
                          rlo.data.size,
-                         (rlo.snapset_mock_data ? rlo.snapset_mock_data->snaps
+                         (rlo.snapset_mock_data ? rlo.snapset_mock_data->clones
                                                 : std::vector<snapid_t>{}));
   }
 };
index 478fd25fe9531d3f2b42d9cc49de47a0c633575c..51be0fb5085957746ffe2616bf9719084e921390 100644 (file)
@@ -56,7 +56,6 @@ SnapsetMockData::CookedCloneSnaps ms1_fn()
 }
 
 static SnapsetMockData hobj_ms1_snapset{/* seq */ 0x40,
-                                       /* snaps */ {0x30, 0x20},
                                        /* clones */ {0x20, 0x30},
                                        ms1_fn};