diff --git a/src/add-ons/kernel/file_systems/bfs/Inode.cpp b/src/add-ons/kernel/file_systems/bfs/Inode.cpp index 1e0b25d8a8..2e2f97e54e 100644 --- a/src/add-ons/kernel/file_systems/bfs/Inode.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Inode.cpp @@ -132,6 +132,11 @@ private: # define T(x) ; #endif + +/*! A helper class used by Inode::Create() to keep track of the belongings + of an inode creation in progress. + This class will make sure everything is cleaned up properly. +*/ class InodeAllocator { public: InodeAllocator(Transaction& transaction); @@ -250,6 +255,8 @@ InodeAllocator::Keep(fs_vnode_ops* vnodeOps, uint32 publishFlags) return status; } + // Symbolic links are not published -- the caller needs to do this once + // the contents have been written. if (!fInode->IsSymLink() && volume->ID() >= 0) { status = publish_vnode(volume->FSVolume(), fInode->ID(), fInode, vnodeOps != NULL ? vnodeOps : &gBFSVnodeOps, fInode->Mode(), diff --git a/src/add-ons/kernel/file_systems/bfs/Journal.h b/src/add-ons/kernel/file_systems/bfs/Journal.h index d6bc01cede..b5b40bc488 100644 --- a/src/add-ons/kernel/file_systems/bfs/Journal.h +++ b/src/add-ons/kernel/file_systems/bfs/Journal.h @@ -83,10 +83,6 @@ Journal::FreeLogBlocks() const } -// For now, that's only a dumb class that does more or less nothing -// else than writing the blocks directly to the real location. -// It doesn't yet use logging. - class Transaction { public: Transaction(Volume* volume, off_t refBlock)