History log of /haiku/src/add-ons/kernel/file_systems/bfs/Debug.cpp
Revision Date Author Comments
# cba63b64 05-Jan-2021 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

bfs: build fix.

I built only the bootloader for sparc when testing, so some code was
disabled because it's guarded by _BOOT_MODE.

Confirmed that the generated assembler is not larger than before (the
disassembly file is the same size, but for some reason functions were in
a different order, making it difficult to compare more closely)


# 1c24ebaa 22-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit compilation fixes for BFS, add to x86_64 boot image.


# 5868dfb9 31-Mar-2012 Axel Dörfler <axeld@pinc-software.de>

Reverted r43922, and instead improved bfs_block_runs command.

* Calling FindBlockRun() would only work for the direct range anyway, as it
would need to call into the block cache for anything else.
* bfs_block_runs now accepts a few more arguments that make finding an offset
much easier.


# dcfb930a 31-Mar-2012 Axel Dörfler <axeld@pinc-software.de>

Improved bfs_inode KDL command.


# 950f37b2 13-Oct-2010 Jérôme Duval <korli@users.berlios.de>

* renamed bfs_inode::ToUsecs() to bfs_inode::ToNsecs, as it really converts to nanoseconds.
* added a comment explaining the nanoseconds conversion


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf844822 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added B_PRIdTIME and B_PRIiTIME macros (for time_t).
* Added FSSH_[S]SIZE_MAX to headers/private/fs_shell/fssh_types.h.
* Fixed various 64 bit compiler warnings. Nothing too serious, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8859eeab 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced "%Ld" and "%lld" in printf()s by the new B_PRI* macros to avoid
warnings when building with a 64 bit compiler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a60fd72 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Replaced the Inode::GetTree() method with a simple getter - the tree is
always created for directories since quite some time now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32158 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 529c716d 29-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Improved bfs_inode command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31943 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4944941 15-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup of how the time is converted between bfs_inode and the outside world:
there is now a couple of conversion functions, and I changed the type from
bigtime_t to int64, as it's not what a bigtime_t would usually contain, but
some shift magic in order to make duplicate index entries less likely.
* We now correctly fill in the timespec in struct stat as good as possible; the
12 of the 16 possible bits are used for the nano second value. The lower 8
bits are used to avoid the duplicate index entries. Only if the nano second
time is 0, the lower 12 bits are used to achieve that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31057 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e07e5540 02-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed debug output of the old pad fields that no longer exist.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33203f67 25-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* added support for ctime to BFS by grabbing two of the pad-fields
* added TODO about a sanity check that should perhaps be dropped
I checked this change with both a haiku-BFS partition and one from R5

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30852 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37e5be59 03-May-2009 Axel Dörfler <axeld@pinc-software.de>

* Replaced the Print() macro with a direct call to kprintf().
* Before, it would incorrectly resolve to the __out() macro which was defined
as dprintf() when compiled for the kernel -- this could deadlock KDL, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30614 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 992fba36 16-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* There is now a list of removed vnodes in Volume - while asking the VFS for
this seemed to be a good idea, there is one race condition that cannot be
solved otherwise (the vnode must be added/removed to that list while holding
the transaction lock, and we cannot guarantee that in the VFS).
* We are using an unused area of the in-memory bfs_inode to store the list
links (bfs_inode::pad - this will also work on 64 bit platforms).
* Inode no longer adds a singly linked list link - the transaction list now
shares the doubly linked list with the removed vnodes list.
* Added an in-memory flag INODE_IN_TRANSACTION to avoid searching an inode
to be added in the list.
* Removing an attribute directory did not hold its write lock.
* If removing an attribute failed for some reason, the INODE_DELETED flag
was not removed (the transaction would not have failed because of that).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ec59fc9 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Improved tracing of the allocations at block level.
* Turned on extra check on allocation when KDEBUG is set.
* The "bfs" KDL command now also prints the block bitmap block for the
specified block.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30079 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 624d9347 03-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* Improved output of "bfs" command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28477 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8744b0e 14-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Each allocation group now lazily maintains the largest free block separately,
so that allocations can be directly fulfilled from that block without having
to search for it.
* This should further improve the allocator's performance, but it could need
more tuning (ie. when to rebuild the free block).
* Added debugging code to check if the largest block is maintained correctly;
it's currently turned on (DEBUG_ALLOCATION_GROUPS) which makes allocations
actually pretty slow - I'll disable it again after it has been tested a bit
more.
* Added a "bfs_allocator_blocks" KDL command that allows you to show all
tracing entries that affect a specific block (only available if BFS has
been compiled with tracing support).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28111 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1be4b7c0 04-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Build fix when built with DEBUG defined.
* Forgot to remove the "bfs_block_runs" debugger command on module unload.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a168f3f 04-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Added KDL command "bfs_block_runs" which shows the blocks runs in an array.
* The "bfs" KDL command now also accepts ',' as group/start delimiter in a
block_run.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26793 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0a18e64 20-Jul-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

bonefish + mmlr + axeld:
* The "bfs" KDL command parsed the optional block_run::start parameter
incorrectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26530 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f02e1e36 20-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* The "bfs_inode" KDL command now prints out some additional information
contained in the inode object when available (ie. when you don't use the
'-b' option).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26524 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7ad2659 29-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* The "bfs" KDL command can now also convert block offsets to block_runs and
vice versa.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 797a92d8 07-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Made super block log handling endian-safe.
* Made all debugging functions endian-safe.
* Added tracing for log entries.
* Added new KDL command "bfs_journal" to dump all pending log entries.
* When BFS_DEBUGGER_COMMANDS is defined, the LogEntry class will also track
the transaction ID it belonged to.
* The "bfs" KDL command now sets some useful debugger variables.
* The "bfs_allocator" KDL command now accepts the group index as 3rd argument.
* Renamed Journal::_TransactionListener() to _TransactionIdle(), as that's
all it is for.
* Removed TODO comment in Volume::WriteSuperBlock(), as it's actually not true.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24852 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4616b7ed 25-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* Added "-b" option to the "bfs_inode" command: when this is specified,
you can use a pointer to the inode block rather than to the Inode
object in memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d43cf2a 19-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Added new debugger commands bfs_btree_header and bfs_btree_node that
dump a B+tree header resp. node.
* Use dprintf() when a transaction is too large instead of a panic; even
though the file system has to revert the transaction, it's not lethal,
and it does not corrupt your disk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23653 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09c46ea8 15-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed bug in the BlockAllocator::Allocate() function which did not
compute the bit offsets correctly if the last block of the whole
bitmap was only a partial block.
* Added new bfs_allocator KDL command.
* Renamed the KDL command bfsinode to bfs_inode.
* Added "--help" argument to bfs_inode and bfs KDL commands.
* Added more tracing in the block allocator.
* Turned on the ASSERT() macro in non-debug builds.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7477802 12-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Made the additions of the KDL debugger commands independant from the
DEBUG macro; they are now added only if BFS_DEBUGGER_COMMANDS is
defined (which is now done by default in the Jamfile).
* Added "bfs" KDL command which dumps volume information and the super
block.
* Made use of the new tracing API to trace block and inode actions
(and the new AbstractTraceEntry class I forgot to mention in the last
commit). Is compiled in only when BFS_TRACING is enabled (defaults to
off in the standard builds).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23464 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5acd132f 16-Jun-2007 Jérôme Duval <korli@users.berlios.de>

replaced uint32 by addr_t where it applies to please gcc on x86_64


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21422 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3bef51f0 06-May-2007 Axel Dörfler <axeld@pinc-software.de>

* Removed unused code when USER is defined - the fs_shell no longer does this, but
provides a kernel emulation layer.
* Renamed all private BPlusTree methods to have the '_' prefix.
* Removed useless set_sem_owner() from Lock.h - all semaphores created in the kernel
always belong to the system team automatically.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21054 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c391f84b 26-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prepared the BFS sources to be used with the new FS shell:
- Moved all inclusions of system headers into a new
system_dependencies.h header, which conditionally either includes
these or the FS shell headers.
- Fixed compiler warnings related to printf-like functions (int32 is
int, not long on non-BeOS platforms).
* Build a new bfs_shell. Compiles and links, but does nothing ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20860 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6106f57e 26-Feb-2006 Stephan Aßmus <superstippi@gmx.de>

* Didn't allow to write back attributes outside the inode block (they don't
have a user accessable stream, but they do have a file cache).
* removed superfluous dump_inode() version; the "bfsinfo" debugger
command is now a bit more useful as well.
* Inode::fAttributes was not initialized when it wasn't used.

(coded by axeld)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16508 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1509c796 29-Aug-2005 Axel Dörfler <axeld@pinc-software.de>

The dump_*() functions now expect const parameters, dunno why that was different at all before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14082 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb02804a 19-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Big update while moving over completely to the Haiku kernel:
- Ported over BFS to the new cache API
- Inode no longer inherits from CachedBlock, and therefore, no longer
keeps the whole inode block in memory. It now has a copy of the bfs_inode
structure in memory instead. This has a number of advantages but also some
disadvantages, so it might be reverted later, even if it's unlikely.
- Added a NodeGetter class that can be used whenever the real block needs
to be accessed (ie. for attributes)
- Changed *transaction to &transaction where possible
- Removed support for KEEP_WRONG_DIRENT_RECLEN
- Removed support for uncached file access since that's no longer needed
- Fixed some endian issues in bfs_write_stat()
- Removed the install BFS rules, since they don't make any sense anymore
(unless you are running Haiku ;-))

Note, logged streams are not supported anymore right now. Also, the
transaction code is pretty simple and slow - it will be improved later
on. Attribute code is pretty much untested in the new environment.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67a14a5e 25-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Unbroke the debug build (also in user mode).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6293 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a893229e 25-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Cleaned up the debug mess mmu_man has created (thanks anyway!).
Switched to kernel_cpp.h/cpp.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a49a098 07-Nov-2003 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Bunches of changes to make mwcc like the code. I also coded an _atomic_set() and _atomic_test_and_set() for PowerPC. Of course, there's already one in the kernel tree, but mine's better. :P Now builds (and works, after a fashion) on R5 PowerPC.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdeaad95 24-Feb-2003 Axel Dörfler <axeld@pinc-software.de>

Fixed some warnings (due to -Wall).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2840 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c42ee134 07-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Initial revision


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@639 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c24ebaa5fdc1d07cd40a296c59463c9477b8fbd 22-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit compilation fixes for BFS, add to x86_64 boot image.


# 5868dfb9890cb4790f1fd4f6d9f8013c1b64337d 31-Mar-2012 Axel Dörfler <axeld@pinc-software.de>

Reverted r43922, and instead improved bfs_block_runs command.

* Calling FindBlockRun() would only work for the direct range anyway, as it
would need to call into the block cache for anything else.
* bfs_block_runs now accepts a few more arguments that make finding an offset
much easier.


# dcfb930a98e6a04c1f02147380cc3039f2316d22 31-Mar-2012 Axel Dörfler <axeld@pinc-software.de>

Improved bfs_inode KDL command.


# 950f37b2069f10d297d7192726f70be915a49e80 13-Oct-2010 Jérôme Duval <korli@users.berlios.de>

* renamed bfs_inode::ToUsecs() to bfs_inode::ToNsecs, as it really converts to nanoseconds.
* added a comment explaining the nanoseconds conversion


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf844822db58eed3db11f93243e38503eb1a4b91 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added B_PRIdTIME and B_PRIiTIME macros (for time_t).
* Added FSSH_[S]SIZE_MAX to headers/private/fs_shell/fssh_types.h.
* Fixed various 64 bit compiler warnings. Nothing too serious, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8859eeab5349da39ee9972ee0943919740754b77 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Replaced "%Ld" and "%lld" in printf()s by the new B_PRI* macros to avoid
warnings when building with a 64 bit compiler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34216 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a60fd72cf588ed0d25028da354261b4d8409c08 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Replaced the Inode::GetTree() method with a simple getter - the tree is
always created for directories since quite some time now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32158 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 529c716df332823070e41db137c6db8cfeaba8e4 29-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Improved bfs_inode command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31943 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e49449412249a5175d2e69da8a3830121379b46c 15-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup of how the time is converted between bfs_inode and the outside world:
there is now a couple of conversion functions, and I changed the type from
bigtime_t to int64, as it's not what a bigtime_t would usually contain, but
some shift magic in order to make duplicate index entries less likely.
* We now correctly fill in the timespec in struct stat as good as possible; the
12 of the 16 possible bits are used for the nano second value. The lower 8
bits are used to avoid the duplicate index entries. Only if the nano second
time is 0, the lower 12 bits are used to achieve that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31057 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e07e55403cdeb02b9ab759bedeff60265723c611 02-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed debug output of the old pad fields that no longer exist.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33203f677e24af9885c58e4407faa4cd44f130df 25-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* added support for ctime to BFS by grabbing two of the pad-fields
* added TODO about a sanity check that should perhaps be dropped
I checked this change with both a haiku-BFS partition and one from R5

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30852 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 37e5be59a66fef4444184baf6270d629e718010c 03-May-2009 Axel Dörfler <axeld@pinc-software.de>

* Replaced the Print() macro with a direct call to kprintf().
* Before, it would incorrectly resolve to the __out() macro which was defined
as dprintf() when compiled for the kernel -- this could deadlock KDL, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30614 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 992fba36eef8b17808a06d483f2fdad90173b01d 16-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* There is now a list of removed vnodes in Volume - while asking the VFS for
this seemed to be a good idea, there is one race condition that cannot be
solved otherwise (the vnode must be added/removed to that list while holding
the transaction lock, and we cannot guarantee that in the VFS).
* We are using an unused area of the in-memory bfs_inode to store the list
links (bfs_inode::pad - this will also work on 64 bit platforms).
* Inode no longer adds a singly linked list link - the transaction list now
shares the doubly linked list with the removed vnodes list.
* Added an in-memory flag INODE_IN_TRANSACTION to avoid searching an inode
to be added in the list.
* Removing an attribute directory did not hold its write lock.
* If removing an attribute failed for some reason, the INODE_DELETED flag
was not removed (the transaction would not have failed because of that).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ec59fc934e3faebec57771fe94ed5676674ba95 09-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Improved tracing of the allocations at block level.
* Turned on extra check on allocation when KDEBUG is set.
* The "bfs" KDL command now also prints the block bitmap block for the
specified block.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30079 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 624d93479a0c1a77c97f1a934c491b5c3ca58a1e 03-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* Improved output of "bfs" command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28477 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a8744b0ee99cd1972d6dd72ca705c24c326869bf 14-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Each allocation group now lazily maintains the largest free block separately,
so that allocations can be directly fulfilled from that block without having
to search for it.
* This should further improve the allocator's performance, but it could need
more tuning (ie. when to rebuild the free block).
* Added debugging code to check if the largest block is maintained correctly;
it's currently turned on (DEBUG_ALLOCATION_GROUPS) which makes allocations
actually pretty slow - I'll disable it again after it has been tested a bit
more.
* Added a "bfs_allocator_blocks" KDL command that allows you to show all
tracing entries that affect a specific block (only available if BFS has
been compiled with tracing support).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28111 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1be4b7c0c5aee2c80d83ba5a36eb8945e7de2015 04-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Build fix when built with DEBUG defined.
* Forgot to remove the "bfs_block_runs" debugger command on module unload.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26800 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a168f3f1fcdef65f9578b5af5399ffa18ef75ff 04-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Added KDL command "bfs_block_runs" which shows the blocks runs in an array.
* The "bfs" KDL command now also accepts ',' as group/start delimiter in a
block_run.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26793 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0a18e64f016790890de31b62ffd6a52739724f0 20-Jul-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

bonefish + mmlr + axeld:
* The "bfs" KDL command parsed the optional block_run::start parameter
incorrectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26530 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f02e1e36e97e2440f4adcd0590f009c9a68c5742 20-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* The "bfs_inode" KDL command now prints out some additional information
contained in the inode object when available (ie. when you don't use the
'-b' option).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26524 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7ad26598a745ec01daaa4cf9f1c1cdb1a605f78 29-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* The "bfs" KDL command can now also convert block offsets to block_runs and
vice versa.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 797a92d84d79bf10ac426c11fcee064b5bcc4609 07-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Made super block log handling endian-safe.
* Made all debugging functions endian-safe.
* Added tracing for log entries.
* Added new KDL command "bfs_journal" to dump all pending log entries.
* When BFS_DEBUGGER_COMMANDS is defined, the LogEntry class will also track
the transaction ID it belonged to.
* The "bfs" KDL command now sets some useful debugger variables.
* The "bfs_allocator" KDL command now accepts the group index as 3rd argument.
* Renamed Journal::_TransactionListener() to _TransactionIdle(), as that's
all it is for.
* Removed TODO comment in Volume::WriteSuperBlock(), as it's actually not true.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24852 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4616b7ed2792ffafc3e123795912f27dec30fae1 25-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* Added "-b" option to the "bfs_inode" command: when this is specified,
you can use a pointer to the inode block rather than to the Inode
object in memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5d43cf2a84430afac1c53b996b0030c6d9855f09 19-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Added new debugger commands bfs_btree_header and bfs_btree_node that
dump a B+tree header resp. node.
* Use dprintf() when a transaction is too large instead of a panic; even
though the file system has to revert the transaction, it's not lethal,
and it does not corrupt your disk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23653 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09c46ea8bd43d9b8ccb6eeaf24f9fd5be4e8291b 15-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed bug in the BlockAllocator::Allocate() function which did not
compute the bit offsets correctly if the last block of the whole
bitmap was only a partial block.
* Added new bfs_allocator KDL command.
* Renamed the KDL command bfsinode to bfs_inode.
* Added "--help" argument to bfs_inode and bfs KDL commands.
* Added more tracing in the block allocator.
* Turned on the ASSERT() macro in non-debug builds.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7477802b8a5451ce525646fd2d4b13ef449c455 12-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* Made the additions of the KDL debugger commands independant from the
DEBUG macro; they are now added only if BFS_DEBUGGER_COMMANDS is
defined (which is now done by default in the Jamfile).
* Added "bfs" KDL command which dumps volume information and the super
block.
* Made use of the new tracing API to trace block and inode actions
(and the new AbstractTraceEntry class I forgot to mention in the last
commit). Is compiled in only when BFS_TRACING is enabled (defaults to
off in the standard builds).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23464 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5acd132fa47d06377bf58bac6b8d57f4eeec27a7 16-Jun-2007 Jérôme Duval <korli@users.berlios.de>

replaced uint32 by addr_t where it applies to please gcc on x86_64


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21422 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3bef51f0ae9112a7e60576abf6fb0b476b2f6584 06-May-2007 Axel Dörfler <axeld@pinc-software.de>

* Removed unused code when USER is defined - the fs_shell no longer does this, but
provides a kernel emulation layer.
* Renamed all private BPlusTree methods to have the '_' prefix.
* Removed useless set_sem_owner() from Lock.h - all semaphores created in the kernel
always belong to the system team automatically.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21054 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c391f84b2c732398288276bc8354ac4060dc5a4d 26-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Prepared the BFS sources to be used with the new FS shell:
- Moved all inclusions of system headers into a new
system_dependencies.h header, which conditionally either includes
these or the FS shell headers.
- Fixed compiler warnings related to printf-like functions (int32 is
int, not long on non-BeOS platforms).
* Build a new bfs_shell. Compiles and links, but does nothing ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20860 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6106f57e218cbdc72d0de30b71ddd9973bbbc9d6 26-Feb-2006 Stephan Aßmus <superstippi@gmx.de>

* Didn't allow to write back attributes outside the inode block (they don't
have a user accessable stream, but they do have a file cache).
* removed superfluous dump_inode() version; the "bfsinfo" debugger
command is now a bit more useful as well.
* Inode::fAttributes was not initialized when it wasn't used.

(coded by axeld)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16508 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1509c79696c629f7a3e2573ce6fcdc8b2573cfb2 29-Aug-2005 Axel Dörfler <axeld@pinc-software.de>

The dump_*() functions now expect const parameters, dunno why that was different at all before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14082 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fb02804a89b1100c0f20c3e3c28be28215103c44 19-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Big update while moving over completely to the Haiku kernel:
- Ported over BFS to the new cache API
- Inode no longer inherits from CachedBlock, and therefore, no longer
keeps the whole inode block in memory. It now has a copy of the bfs_inode
structure in memory instead. This has a number of advantages but also some
disadvantages, so it might be reverted later, even if it's unlikely.
- Added a NodeGetter class that can be used whenever the real block needs
to be accessed (ie. for attributes)
- Changed *transaction to &transaction where possible
- Removed support for KEEP_WRONG_DIRENT_RECLEN
- Removed support for uncached file access since that's no longer needed
- Fixed some endian issues in bfs_write_stat()
- Removed the install BFS rules, since they don't make any sense anymore
(unless you are running Haiku ;-))

Note, logged streams are not supported anymore right now. Also, the
transaction code is pretty simple and slow - it will be improved later
on. Attribute code is pretty much untested in the new environment.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67a14a5ee7e05cff715feb4c09888822b1404dfc 25-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Unbroke the debug build (also in user mode).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6293 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a893229e0840ca348456cc7dfbdc9887a4575581 25-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Cleaned up the debug mess mmu_man has created (thanks anyway!).
Switched to kernel_cpp.h/cpp.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6289 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1a49a0986bd50ef30d406b4f5001a0784d344015 07-Nov-2003 Nathan Whitehorn <nwhitehorn@nowhere.fake>

Bunches of changes to make mwcc like the code. I also coded an _atomic_set() and _atomic_test_and_set() for PowerPC. Of course, there's already one in the kernel tree, but mine's better. :P Now builds (and works, after a fashion) on R5 PowerPC.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cdeaad9578e824f19673cf3e6f6ff2aa19d42287 24-Feb-2003 Axel Dörfler <axeld@pinc-software.de>

Fixed some warnings (due to -Wall).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2840 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c42ee13401be80c431846910959d587949a1ad10 07-Aug-2002 Axel Dörfler <axeld@pinc-software.de>

Initial revision


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@639 a95241bf-73f2-0310-859d-f6bbb57e9c96