diff --git a/src/system/kernel/cache/block_cache.cpp b/src/system/kernel/cache/block_cache.cpp
index b49bf6e..e0c258b 100644
a
|
b
|
BlockWriter::_BlockDone(cached_block* block, hash_iterator* iterator)
|
1268 | 1268 | fDeletedTransaction = true; |
1269 | 1269 | } |
1270 | 1270 | } |
1271 | | if (block->transaction == NULL && block->ref_count == 0) { |
| 1271 | if (block->transaction == NULL && block->ref_count == 0 && !block->unused) { |
1272 | 1272 | // the block is no longer used |
1273 | 1273 | block->unused = true; |
1274 | 1274 | fCache->unused_blocks.Add(block); |
… |
… |
put_cached_block(block_cache* cache, cached_block* block)
|
1761 | 1761 | cache->RemoveBlock(block); |
1762 | 1762 | } else { |
1763 | 1763 | // put this block in the list of unused blocks |
| 1764 | ASSERT(!block->unused); |
1764 | 1765 | block->unused = true; |
| 1766 | |
1765 | 1767 | ASSERT(block->original_data == NULL |
1766 | 1768 | && block->parent_data == NULL); |
1767 | 1769 | cache->unused_blocks.Add(block); |
diff --git a/src/tools/fs_shell/block_cache.cpp b/src/tools/fs_shell/block_cache.cpp
index 78f69d2..2f47a09 100644
a
|
b
|
write_cached_block(block_cache* cache, cached_block* block,
|
927 | 927 | } |
928 | 928 | } |
929 | 929 | } |
930 | | if (block->transaction == NULL && block->ref_count == 0) { |
| 930 | if (block->transaction == NULL && block->ref_count == 0 && !block->unused) { |
931 | 931 | // the block is no longer used |
932 | 932 | block->unused = true; |
933 | 933 | cache->unused_blocks.Add(block); |