1/* 2 * Copyright 2001-2010, Haiku Inc. All rights reserved. 3 * This file may be used under the terms of the MIT License. 4 * 5 * Authors: 6 * Janito V. Ferreira Filho 7 */ 8 9 10#include "NoJournal.h" 11 12#include <string.h> 13 14#include <fs_cache.h> 15 16 17//#define TRACE_EXT2 18#ifdef TRACE_EXT2 19# define TRACE(x...) dprintf("\33[34mext2:\33[0m " x) 20#else 21# define TRACE(x...) ; 22#endif 23 24 25NoJournal::NoJournal(Volume* volume) 26 : 27 Journal() 28{ 29 fFilesystemVolume = volume; 30 fFilesystemBlockCache = volume->BlockCache(); 31 fJournalVolume = volume; 32 fHasSubTransaction = false; 33 fSeparateSubTransactions = false; 34} 35 36 37NoJournal::~NoJournal() 38{ 39} 40 41 42status_t 43NoJournal::InitCheck() 44{ 45 return B_OK; 46} 47 48 49status_t 50NoJournal::Recover() 51{ 52 return B_OK; 53} 54 55 56status_t 57NoJournal::StartLog() 58{ 59 return B_OK; 60} 61 62 63status_t 64NoJournal::Lock(Transaction* owner, bool separateSubTransactions) 65{ 66 status_t status = block_cache_sync(fFilesystemBlockCache); 67 TRACE("NoJournal::Lock(): block_cache_sync: %s\n", strerror(status)); 68 69 if (status == B_OK) 70 status = Journal::Lock(owner, separateSubTransactions); 71 72 return status; 73} 74 75 76status_t 77NoJournal::Unlock(Transaction* owner, bool success) 78{ 79 TRACE("NoJournal::Unlock\n"); 80 return Journal::Unlock(owner, success); 81} 82 83 84status_t 85NoJournal::_WriteTransactionToLog() 86{ 87 TRACE("NoJournal::_WriteTransactionToLog(): Ending transaction %" B_PRId32 88 "\n", fTransactionID); 89 90 fTransactionID = cache_end_transaction(fFilesystemBlockCache, 91 fTransactionID, _TransactionWritten, NULL); 92 93 return B_OK; 94} 95 96 97/*static*/ void 98NoJournal::_TransactionWritten(int32 transactionID, int32 event, void* param) 99{ 100 TRACE("Transaction %" B_PRId32" checkpointed\n", transactionID); 101} 102