From 4af303359b577f5c7e16e92423566aa6afb9812f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 18 Aug 2010 16:44:51 +0000 Subject: [PATCH] * We need to reset the blockNumber, or else we'll discard the wrong blocks which has rather desastrous consequences - thanks to Stippi for the heads up :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38242 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/cache/block_cache.cpp | 3 +++ 1 file changed, 3 insertions(+) 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);