From 64ec1e2e9519aa86c3fc89a21c27c108d409f2f6 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Tue, 30 Jul 2024 16:18:39 -0400 Subject: [PATCH] mds: allow passing explicit seq to trim to Signed-off-by: Patrick Donnelly --- src/mds/MDLog.cc | 9 +++++---- src/mds/MDLog.h | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/mds/MDLog.cc b/src/mds/MDLog.cc index 8671f2507cb..becd9d0b606 100644 --- a/src/mds/MDLog.cc +++ b/src/mds/MDLog.cc @@ -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); } diff --git a/src/mds/MDLog.h b/src/mds/MDLog.h index 33eba835c40..6411dca2443 100644 --- a/src/mds/MDLog.h +++ b/src/mds/MDLog.h @@ -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! -- 2.47.3