* Copyright 2001-2010, Haiku Inc. All rights reserved.
* This file may be used under the terms of the MIT License.
*
* Authors:
* Janito V. Ferreira Filho
*/
#include "NoJournal.h"
#include <string.h>
#include <fs_cache.h>
#ifdef TRACE_EXT2
# define TRACE(x...) dprintf("\33[34mext2:\33[0m " x)
#else
# define TRACE(x...) ;
#endif
NoJournal::NoJournal(Volume* volume)
:
Journal()
{
fFilesystemVolume = volume;
fFilesystemBlockCache = volume->BlockCache();
fJournalVolume = volume;
fHasSubTransaction = false;
fSeparateSubTransactions = false;
}
NoJournal::~NoJournal()
{
}
status_t
NoJournal::InitCheck()
{
return B_OK;
}
status_t
NoJournal::Recover()
{
return B_OK;
}
status_t
NoJournal::StartLog()
{
return B_OK;
}
status_t
NoJournal::Lock(Transaction* owner, bool separateSubTransactions)
{
status_t status = block_cache_sync(fFilesystemBlockCache);
TRACE("NoJournal::Lock(): block_cache_sync: %s\n", strerror(status));
if (status == B_OK)
status = Journal::Lock(owner, separateSubTransactions);
return status;
}
status_t
NoJournal::Unlock(Transaction* owner, bool success)
{
TRACE("NoJournal::Unlock\n");
return Journal::Unlock(owner, success);
}
status_t
NoJournal::_WriteTransactionToLog()
{
TRACE("NoJournal::_WriteTransactionToLog(): Ending transaction %" B_PRId32
"\n", fTransactionID);
fTransactionID = cache_end_transaction(fFilesystemBlockCache,
fTransactionID, _TransactionWritten, NULL);
return B_OK;
}
void
NoJournal::_TransactionWritten(int32 transactionID, int32 event, void* param)
{
TRACE("Transaction %" B_PRId32" checkpointed\n", transactionID);
}