@@ -361,7 +361,9 @@ DBImpl::~DBImpl() {
361
361
FindObsoleteFiles (deletion_state, true );
362
362
// manifest number starting from 2
363
363
deletion_state.manifest_file_number = 1 ;
364
- PurgeObsoleteFiles (deletion_state);
364
+ if (deletion_state.HaveSomethingToDelete ()) {
365
+ PurgeObsoleteFiles (deletion_state);
366
+ }
365
367
}
366
368
}
367
369
@@ -780,7 +782,9 @@ void DBImpl::DeleteObsoleteFiles() {
780
782
mutex_.AssertHeld ();
781
783
DeletionState deletion_state;
782
784
FindObsoleteFiles (deletion_state, true );
783
- PurgeObsoleteFiles (deletion_state);
785
+ if (deletion_state.HaveSomethingToDelete ()) {
786
+ PurgeObsoleteFiles (deletion_state);
787
+ }
784
788
}
785
789
786
790
// 1. Go through all archived files and
@@ -2782,7 +2786,9 @@ static void CleanupIteratorState(void* arg1, void* arg2) {
2782
2786
state->mu ->Unlock ();
2783
2787
2784
2788
delete state->super_version ;
2785
- state->db ->PurgeObsoleteFiles (deletion_state);
2789
+ if (deletion_state.HaveSomethingToDelete ()) {
2790
+ state->db ->PurgeObsoleteFiles (deletion_state);
2791
+ }
2786
2792
}
2787
2793
2788
2794
delete state;
@@ -3759,7 +3765,9 @@ Status DBImpl::DeleteFile(std::string name) {
3759
3765
} // lock released here
3760
3766
LogFlush (options_.info_log );
3761
3767
// remove files outside the db-lock
3762
- PurgeObsoleteFiles (deletion_state);
3768
+ if (deletion_state.HaveSomethingToDelete ()) {
3769
+ PurgeObsoleteFiles (deletion_state);
3770
+ }
3763
3771
{
3764
3772
MutexLock l (&mutex_);
3765
3773
// schedule flush if file deletion means we freed the space for flushes to
0 commit comments