cache_abort_transaction() freed the wrong block, and thus causing a file system
corruption even better than during its absence. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12903 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
ac5af8f1b4
commit
f4e5c34143
2
src/system/kernel/cache/block_cache.cpp
vendored
2
src/system/kernel/cache/block_cache.cpp
vendored
@ -619,7 +619,7 @@ cache_abort_transaction(void *_cache, int32 id)
|
|||||||
TRACE(("cache_abort_transaction(id = %ld): restored contents of block %Ld\n",
|
TRACE(("cache_abort_transaction(id = %ld): restored contents of block %Ld\n",
|
||||||
transaction->id, block->block_number));
|
transaction->id, block->block_number));
|
||||||
memcpy(block->data, block->original, cache->block_size);
|
memcpy(block->data, block->original, cache->block_size);
|
||||||
cache->allocator->Put(block->data);
|
cache->allocator->Put(block->original);
|
||||||
block->original = NULL;
|
block->original = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user