diff --git a/src/add-ons/kernel/file_systems/bfs/Journal.h b/src/add-ons/kernel/file_systems/bfs/Journal.h index 42f6d2a7c5..2e1b4d37d4 100644 --- a/src/add-ons/kernel/file_systems/bfs/Journal.h +++ b/src/add-ons/kernel/file_systems/bfs/Journal.h @@ -28,10 +28,10 @@ public: status_t Lock(Transaction* owner, bool separateSubTransactions); status_t Unlock(Transaction* owner, bool success); + void AssertLocked() { ASSERT_LOCKED_RECURSIVE(&fLock); } status_t ReplayLog(); - Transaction* CurrentTransaction() const { return fOwner; } size_t CurrentTransactionSize() const; bool CurrentTransactionTooLarge() const; diff --git a/src/add-ons/kernel/file_systems/bfs/Volume.cpp b/src/add-ons/kernel/file_systems/bfs/Volume.cpp index 82087f67fe..e3261ce7c9 100644 --- a/src/add-ons/kernel/file_systems/bfs/Volume.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Volume.cpp @@ -414,6 +414,15 @@ Volume::WriteSuperBlock() } +InodeList& +Volume::RemovedInodes() +{ + // This list is guarded by the transaction lock. + fJournal->AssertLocked(); + return fRemovedInodes; +} + + void Volume::UpdateLiveQueries(Inode* inode, const char* attribute, int32 type, const uint8* oldKey, size_t oldLength, const uint8* newKey, diff --git a/src/add-ons/kernel/file_systems/bfs/Volume.h b/src/add-ons/kernel/file_systems/bfs/Volume.h index 6352b8650c..245bf8202d 100644 --- a/src/add-ons/kernel/file_systems/bfs/Volume.h +++ b/src/add-ons/kernel/file_systems/bfs/Volume.h @@ -99,8 +99,7 @@ public: status_t CreateVolumeID(Transaction& transaction); - InodeList& RemovedInodes() { return fRemovedInodes; } - // This list is guarded by the transaction lock + InodeList& RemovedInodes(); // block bitmap BlockAllocator& Allocator();