* We need to reset fUnwrittenTransactions when we abort a transaction without

a sub transaction, or else we would try to continue using it.
* It doesn't make any sense to increase fUnwrittenTransactions when
  _WriteTransactionToLog() failed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31857 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2009-07-28 19:58:44 +00:00
parent d4d63490af
commit 85c5c0b4d0
@@ -1003,10 +1003,13 @@ status_t
Journal::_TransactionDone(bool success)
{
if (!success) {
if (_HasSubTransaction())
if (_HasSubTransaction()) {
cache_abort_sub_transaction(fVolume->BlockCache(), fTransactionID);
else
// We can continue to use the parent transaction afterwards
} else {
cache_abort_transaction(fVolume->BlockCache(), fTransactionID);
fUnwrittenTransactions = 0;
}
return B_OK;
}
@@ -1024,11 +1027,7 @@ Journal::_TransactionDone(bool success)
return B_OK;
}
status_t status = _WriteTransactionToLog();
if (status != B_OK)
fUnwrittenTransactions++;
return status;
return _WriteTransactionToLog();
}