diff --git a/src/system/kernel/cache/block_cache.cpp b/src/system/kernel/cache/block_cache.cpp index 063286ccb9..6e34f1451d 100644 --- a/src/system/kernel/cache/block_cache.cpp +++ b/src/system/kernel/cache/block_cache.cpp @@ -3406,6 +3406,9 @@ block_cache_discard(void* _cache, off_t blockNumber, size_t numBlocks) writer.Write(); // TODO: this can fail, too! + blockNumber -= numBlocks; + // reset blockNumber to its original value + for (size_t i = 0; i < numBlocks; i++, blockNumber++) { cached_block* block = (cached_block*)hash_lookup(cache->hash, &blockNumber);