From 701d1966683404307bccce6454e4db97ea52cf3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 24 Apr 2008 11:28:41 +0000 Subject: [PATCH] * 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 --- src/add-ons/kernel/file_systems/bfs/Inode.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/add-ons/kernel/file_systems/bfs/Inode.cpp b/src/add-ons/kernel/file_systems/bfs/Inode.cpp index 4bbdb901c7..b693627039 100644 --- a/src/add-ons/kernel/file_systems/bfs/Inode.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Inode.cpp @@ -1754,6 +1754,8 @@ Inode::_GrowStream(Transaction &transaction, off_t size) do { // do we need a new array block? if (array[indirectIndex % runsPerBlock].IsZero()) { + cached.MakeWritable(transaction); + status = _AllocateBlockArray(transaction, array[indirectIndex % runsPerBlock]); if (status < B_OK)