* Inode::_GrowStream() did not make the double indirect block writable before
adding a block to its array. This could cause all kinds of trouble, and fixes at least a part of #2148. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25125 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1754,6 +1754,8 @@ Inode::_GrowStream(Transaction &transaction, off_t size)
|
|||||||
do {
|
do {
|
||||||
// do we need a new array block?
|
// do we need a new array block?
|
||||||
if (array[indirectIndex % runsPerBlock].IsZero()) {
|
if (array[indirectIndex % runsPerBlock].IsZero()) {
|
||||||
|
cached.MakeWritable(transaction);
|
||||||
|
|
||||||
status = _AllocateBlockArray(transaction,
|
status = _AllocateBlockArray(transaction,
|
||||||
array[indirectIndex % runsPerBlock]);
|
array[indirectIndex % runsPerBlock]);
|
||||||
if (status < B_OK)
|
if (status < B_OK)
|
||||||
|
|||||||
Reference in New Issue
Block a user