aboutsummaryrefslogtreecommitdiff
path: root/zenstore/compactcas.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-04-02 00:19:41 +0200
committerDan Engelbrecht <[email protected]>2022-04-02 00:19:41 +0200
commit8bcd5852dee559b108eae84086f3e6fdccebb790 (patch)
treef998ca53417bc5e69b226b1e747ba48b0b377fa8 /zenstore/compactcas.cpp
parentdon't try to allocate file space for a zero size file (diff)
downloadzen-8bcd5852dee559b108eae84086f3e6fdccebb790.tar.xz
zen-8bcd5852dee559b108eae84086f3e6fdccebb790.zip
fix gc reclaim logic in compactcas
Diffstat (limited to 'zenstore/compactcas.cpp')
-rw-r--r--zenstore/compactcas.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/zenstore/compactcas.cpp b/zenstore/compactcas.cpp
index c266d4994..3ce2c2260 100644
--- a/zenstore/compactcas.cpp
+++ b/zenstore/compactcas.cpp
@@ -1218,12 +1218,12 @@ CasContainerStrategy::CollectGarbage(GcContext& GcCtx)
if (Space.Free < m_MaxBlockSize)
{
uint64_t ReclaimedSpace = GcCtx.ClaimGCReserve();
- if (ReclaimedSpace == 0)
+ if (Space.Free + ReclaimedSpace < m_MaxBlockSize)
{
ZEN_INFO("garbage collect for '{}' FAILED, required disk space {}, free {}",
m_Config.RootDirectory / m_ContainerBaseName,
m_MaxBlockSize,
- NiceBytes(Space.Free));
+ NiceBytes(Space.Free + ReclaimedSpace));
RwLock::ExclusiveLockScope _l(m_LocationMapLock);
Stopwatch Timer;
const auto __ = MakeGuard([&Timer, &ReadBlockTimeUs, &ReadBlockLongestTimeUs] {