From: Patrick Donnelly Date: Tue, 30 Jul 2024 20:18:39 +0000 (-0400) Subject: mds: allow passing explicit seq to trim to X-Git-Tag: v20.0.0~955^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=64ec1e2e9519aa86c3fc89a21c27c108d409f2f6;p=ceph.git mds: allow passing explicit seq to trim to Signed-off-by: Patrick Donnelly --- diff --git a/src/mds/MDLog.cc b/src/mds/MDLog.cc index 8671f2507cb3..becd9d0b6064 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 33eba835c402..6411dca24431 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!