From 0f779d495becbe2d53f15faca15249defc71eb77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 30 Jul 2009 00:06:02 +0000 Subject: [PATCH] * Transaction::UnlockInodes() may start a new transaction, but we cannot reuse the one just closed anymore. The fSeparateSubTransactions mechanism should make sure that this won't happen. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31954 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/Journal.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/add-ons/kernel/file_systems/bfs/Journal.cpp b/src/add-ons/kernel/file_systems/bfs/Journal.cpp index cf557ed8eb..44b8d46e68 100644 --- a/src/add-ons/kernel/file_systems/bfs/Journal.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Journal.cpp @@ -997,7 +997,12 @@ Journal::Unlock(Transaction* owner, bool success) if (status != B_OK) return status; + // Unlocking the inodes might trigger new transactions, but we + // cannot reuse the current one anymore, as this one is already + // closed. + fSeparateSubTransactions = true; fOwner->UnlockInodes(success); + fSeparateSubTransactions = false; } fTimestamp = system_time();