diff options
Diffstat (limited to 'zenstore/blockstore.cpp')
| -rw-r--r-- | zenstore/blockstore.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/zenstore/blockstore.cpp b/zenstore/blockstore.cpp index 593ccc529..b3608687b 100644 --- a/zenstore/blockstore.cpp +++ b/zenstore/blockstore.cpp @@ -279,7 +279,8 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot, const std::vector<size_t>& KeepChunkIndexes, uint64_t PayloadAlignment, bool DryRun, - const ReclaimCallback& Callback) + const ReclaimCallback& ChangeCallback, + const ClaimGCReserveCallback& GcReserveCallback) { if (ChunkLocations.empty()) { @@ -437,7 +438,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot, { DeletedSize += ChunkLocations[DeleteIndex].Size; } - Callback({}, DeleteMap); + ChangeCallback({}, DeleteMap); DeletedCount += DeleteMap.size(); { RwLock::ExclusiveLockScope _i(m_InsertLock); @@ -477,7 +478,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot, NewBlockFile->Flush(); } { - Callback(MovedChunks, {}); + ChangeCallback(MovedChunks, {}); MovedCount += KeepMap.size(); MovedChunks.clear(); RwLock::ExclusiveLockScope __(m_InsertLock); @@ -512,7 +513,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot, } if (Space.Free < m_MaxBlockSize) { - uint64_t ReclaimedSpace = 0; // GcCtx.ClaimGCReserve(); + uint64_t ReclaimedSpace = GcReserveCallback(); if (Space.Free + ReclaimedSpace < m_MaxBlockSize) { ZEN_WARN("garbage collect for '{}' FAILED, required disk space {}, free {}", @@ -558,7 +559,7 @@ BlockStore::ReclaimSpace(const ReclaimSnapshotState& Snapshot, DeletedSize += ChunkLocations[DeleteIndex].Size; } - Callback(MovedChunks, DeleteMap); + ChangeCallback(MovedChunks, DeleteMap); MovedCount += KeepMap.size(); DeletedCount += DeleteMap.size(); MovedChunks.clear(); |