Skip to content

Commit 64ec1e2

Browse files
committed
mds: allow passing explicit seq to trim to
Signed-off-by: Patrick Donnelly <[email protected]>
1 parent 6030e74 commit 64ec1e2

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/mds/MDLog.cc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -762,17 +762,18 @@ class C_MaybeExpiredSegment : public MDSInternalContext {
762762
* Like MDLog::trim, but instead of trimming to max_segments, trim all but the latest
763763
* segment.
764764
*/
765-
int MDLog::trim_all()
765+
int MDLog::trim_to(SegmentBoundary::seq_t seq)
766766
{
767767
submit_mutex.lock();
768768

769769
dout(10) << __func__ << ": "
770-
<< segments.size()
770+
<< seq
771+
<< " " << segments.size()
771772
<< "/" << expiring_segments.size()
772773
<< "/" << expired_segments.size() << dendl;
773774

774-
uint64_t last_seq = 0;
775-
if (!segments.empty()) {
775+
uint64_t last_seq = seq;
776+
if (last_seq == 0 || !segments.empty()) {
776777
last_seq = get_last_segment_seq();
777778
try_to_commit_open_file_table(last_seq);
778779
}

src/mds/MDLog.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,10 @@ class MDLog {
147147
}
148148

149149
void trim_expired_segments();
150-
int trim_all();
150+
int trim_all() {
151+
return trim_to(0);
152+
}
153+
int trim_to(SegmentBoundary::seq_t);
151154

152155
void create(MDSContext *onfinish); // fresh, empty log!
153156
void open(MDSContext *onopen); // append() or replay() to follow!

0 commit comments

Comments
 (0)