* 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:
@@ -1003,10 +1003,13 @@ status_t
|
|||||||
Journal::_TransactionDone(bool success)
|
Journal::_TransactionDone(bool success)
|
||||||
{
|
{
|
||||||
if (!success) {
|
if (!success) {
|
||||||
if (_HasSubTransaction())
|
if (_HasSubTransaction()) {
|
||||||
cache_abort_sub_transaction(fVolume->BlockCache(), fTransactionID);
|
cache_abort_sub_transaction(fVolume->BlockCache(), fTransactionID);
|
||||||
else
|
// We can continue to use the parent transaction afterwards
|
||||||
|
} else {
|
||||||
cache_abort_transaction(fVolume->BlockCache(), fTransactionID);
|
cache_abort_transaction(fVolume->BlockCache(), fTransactionID);
|
||||||
|
fUnwrittenTransactions = 0;
|
||||||
|
}
|
||||||
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
@@ -1024,11 +1027,7 @@ Journal::_TransactionDone(bool success)
|
|||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t status = _WriteTransactionToLog();
|
return _WriteTransactionToLog();
|
||||||
if (status != B_OK)
|
|
||||||
fUnwrittenTransactions++;
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user