From 8b5e5656f49d0aa074dc4742e117d4336a3a7bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 7 Apr 2008 12:15:15 +0000 Subject: [PATCH] * BFS now panics if cache_sync_transaction() didn't free the space needed, instead of writing over the old log entries. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24856 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/Journal.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/bfs/Journal.cpp b/src/add-ons/kernel/file_systems/bfs/Journal.cpp index a63041eced..7b65b8cde1 100644 --- a/src/add-ons/kernel/file_systems/bfs/Journal.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Journal.cpp @@ -727,8 +727,13 @@ Journal::_WriteTransactionToLog() // If necessary, flush the log, so that we have enough space for this // transaction - if (runArrays.LogEntryLength() > FreeLogBlocks()) + if (runArrays.LogEntryLength() > FreeLogBlocks()) { cache_sync_transaction(fVolume->BlockCache(), fTransactionID); + if (runArrays.LogEntryLength() > FreeLogBlocks()) { + panic("no space in log after sync (%ld for %ld blocks)!", + (long)FreeLogBlocks(), (long)runArrays.LogEntryLength()); + } + } // Write log entries to disk