]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: allow passing explicit seq to trim to
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 30 Jul 2024 20:18:39 +0000 (16:18 -0400)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 25 Sep 2024 19:42:25 +0000 (15:42 -0400)
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/MDLog.cc
src/mds/MDLog.h

index 8671f2507cb31ad9edbf1855fb97480565459433..becd9d0b606428c0b7f128b671f851455588474f 100644 (file)
@@ -762,17 +762,18 @@ class C_MaybeExpiredSegment : public MDSInternalContext {
  * Like MDLog::trim, but instead of trimming to max_segments, trim all but the latest
  * segment.
  */
-int MDLog::trim_all()
+int MDLog::trim_to(SegmentBoundary::seq_t seq)
 {
   submit_mutex.lock();
 
   dout(10) << __func__ << ": "
-          << segments.size()
+           << seq
+          << " " << segments.size()
            << "/" << expiring_segments.size()
            << "/" << expired_segments.size() << dendl;
 
-  uint64_t last_seq = 0;
-  if (!segments.empty()) {
+  uint64_t last_seq = seq;
+  if (last_seq == 0 || !segments.empty()) {
     last_seq = get_last_segment_seq();
     try_to_commit_open_file_table(last_seq);
   }
index 33eba835c40234779303f81d25e08fb74307b363..6411dca2443192f35e028e0d88979a1d54094c36 100644 (file)
@@ -147,7 +147,10 @@ public:
   }
 
   void trim_expired_segments();
-  int trim_all();
+  int trim_all() {
+    return trim_to(0);
+  }
+  int trim_to(SegmentBoundary::seq_t);
 
   void create(MDSContext *onfinish);  // fresh, empty log! 
   void open(MDSContext *onopen);      // append() or replay() to follow!