diff --git a/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp b/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp index 7f5d86b4d9..9895d3df8e 100644 --- a/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp +++ b/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp @@ -104,19 +104,14 @@ class Block : public AbstractTraceEntry { { strlcpy(fLabel, label, sizeof(fLabel)); fSum = checksum(data, size); - memcpy(fBytes, data, min_c(size, sizeof(fBytes))); Initialized(); } virtual void AddDump(char *buffer, size_t size) { uint32 length = snprintf(buffer, size, "%s: block %Ld (%p), sum %lu," - " s/l %lu/%lu, bytes ", fLabel, fBlock, fData, fSum, fStart, + " s/l %lu/%lu", fLabel, fBlock, fData, fSum, fStart, fLength); - for (uint32 i = 0; length < size - 1 && i < sizeof(fBytes); i++) { - length += snprintf(buffer + length, size - length, "%02x", - fBytes[i]); - } } private: @@ -126,7 +121,6 @@ class Block : public AbstractTraceEntry { uint32 fLength; uint32 fSum; char fLabel[12]; - uint8 fBytes[32]; }; } // namespace BFSBlockTracing diff --git a/src/add-ons/kernel/file_systems/bfs/Inode.cpp b/src/add-ons/kernel/file_systems/bfs/Inode.cpp index 0a4afb5af8..a0745bea7a 100644 --- a/src/add-ons/kernel/file_systems/bfs/Inode.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Inode.cpp @@ -78,6 +78,28 @@ class Remove : public AbstractTraceEntry { char fName[32]; }; +class Action : public AbstractTraceEntry { + public: + Action(const char* action, Inode* inode) + : + fInode(inode), + fID(inode->ID()) + { + strlcpy(fAction, action, sizeof(fAction)); + Initialized(); + } + + virtual void AddDump(char *buffer, size_t size) + { + snprintf(buffer, size, "%s %Ld (%p)\n", fAction, fID, fInode); + } + + private: + Inode* fInode; + ino_t fID; + char fAction[16]; +}; + class Resize : public AbstractTraceEntry { public: Resize(Inode* inode, off_t oldSize, off_t newSize) @@ -2116,6 +2138,8 @@ Inode::NeedsTrimming() status_t Inode::TrimPreallocation(Transaction &transaction) { + T(Action("TRIM", this)); + status_t status = _ShrinkStream(transaction, Size()); if (status < B_OK) return status;