History log of /haiku/src/add-ons/kernel/file_systems/bfs/system_dependencies.h
Revision Date Author Comments
# 0b5d4856 09-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

fs_shell: Prevent inclusion of BSD headers; fix DeviceOpener.


# de9c0613 03-Jul-2014 Axel Dörfler <axeld@pinc-software.de>

bfs: Use the QueryParserUtils instead of its own copy.

* Ingo copied the methods into a shared location, and then obviously
"forgot" to let BFS use them. As a side note for Ingo: the complete
error GCC reported was "std::fssh_size_t" not defined with the macro
wrapper as code location. The actual problem was a "using std::size_t"
in some C++ header that accidentally got included after the wrapper.
* The shared Query code is not yet used. That'll be done another time.
* Renamed BFS_SHELL define to FS_SHELL, such that QueryParserUtils can be
used in any file system shell, not just the bfs_shell.


# a1566b06 06-May-2013 Axel Dörfler <axeld@pinc-software.de>

bfs: removed kernel_cpp.h's new operator.

* This fixes bug #9715 from the POV of BFS, ie. the new operator seems
to call the constructor on a NULL object on failure.


# 88a25656 03-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added support for O_NOCACHE/O_DIRECT.
* bfs_open() was leaking the already allocated cookie in several error
conditions.


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


# 2e3477e3 31-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* Changed the inode write locking to be held as long as the transaction is
running - this fixes several cases where someone could see outdated data
when a transaction had to be reverted (the time between unlocking the inode
and actually reverting the blocks). For that, Inodes can now be put into a
singly linked list.
* Added a TODO in Inode::WriteAt() which explains why it cannot use the above
method: seems that our VFS/VM locking model isn't really that good.
* Fixed a possible deadlock in Attribute::_Truncate() where the inode write
lock was held before starting the transaction.
* Added an InodeReadLocker convenience class, that should be used instead
of ReadLocker - Inode::Lock() only still exists because of the needs of
bfs_io().
* Moved the bfs_io() callback hooks out of the exported module API region,
and removed their bfs_ prefix.
* Added a Volume::IsInitializing() method that should be used rather than
checking if Volume::ID() is >= 0.
* Removed the MultiInodeLocker again, as it's pretty much superfluous now.
* Moved openModeToAccess() to the Utility.h header.
* Minor cleanup.


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


# 5d0a5f7c 23-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* The bfs_shell needs to include <new> as well.


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


# 082bae1a 23-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* bfs_fsync() no longer grabs the Inode's read lock - instead, Inode::Sync()
will take care of the locking.
* Use new(std::nothrow) over new, and malloc (only in kernel_interface.cpp);
the kernel_cpp.h header isn't really necessary anymore, so there is no reason
BFS should continue to use it.
* Removed superfluous NULL checks.


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


# 03fa417b 07-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* Removed the home-brewn locking classes in BFS besides the read/write lock
(for now).
* Inode::fSmallDataLock is now a recursive_lock, Journal::fLock is now
a recursive_lock, too, Journal::fEntriesLock is now a mutex, as is
BPlusTree::fIteratorLock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26298 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


# 4c7e2a45 20-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed a bug in CachedBlock::Unset() that would call block_cache_put() on the same
block everytime it's called - that caused negative reference counts in the block
cache, causing all sorts of problems once they were flushed.
* Changed order of includes in system_dependencies.h to what I prefer: descending from
private to public (resp. from most specific to most generic) headers.
* Minor cleanup.


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


# 68fd0cb9 24-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Driver settings support is now available in the FS shell.


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


# 87ac9f1d 27-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed boot loader BFS build which I broke with my recent changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20861 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


# de9c0613398645390b8d450089051b2888e2e15b 03-Jul-2014 Axel Dörfler <axeld@pinc-software.de>

bfs: Use the QueryParserUtils instead of its own copy.

* Ingo copied the methods into a shared location, and then obviously
"forgot" to let BFS use them. As a side note for Ingo: the complete
error GCC reported was "std::fssh_size_t" not defined with the macro
wrapper as code location. The actual problem was a "using std::size_t"
in some C++ header that accidentally got included after the wrapper.
* The shared Query code is not yet used. That'll be done another time.
* Renamed BFS_SHELL define to FS_SHELL, such that QueryParserUtils can be
used in any file system shell, not just the bfs_shell.


# a1566b06b7b53d14fa53c169b0989925c54fd69d 06-May-2013 Axel Dörfler <axeld@pinc-software.de>

bfs: removed kernel_cpp.h's new operator.

* This fixes bug #9715 from the POV of BFS, ie. the new operator seems
to call the constructor on a NULL object on failure.


# 88a2565650749a2ee9436f0e5f2a2077d21bf03e 03-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added support for O_NOCACHE/O_DIRECT.
* bfs_open() was leaking the already allocated cookie in several error
conditions.


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


# 2e3477e3d851cc46fa682712c3f73dbb82d64fd9 31-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* Changed the inode write locking to be held as long as the transaction is
running - this fixes several cases where someone could see outdated data
when a transaction had to be reverted (the time between unlocking the inode
and actually reverting the blocks). For that, Inodes can now be put into a
singly linked list.
* Added a TODO in Inode::WriteAt() which explains why it cannot use the above
method: seems that our VFS/VM locking model isn't really that good.
* Fixed a possible deadlock in Attribute::_Truncate() where the inode write
lock was held before starting the transaction.
* Added an InodeReadLocker convenience class, that should be used instead
of ReadLocker - Inode::Lock() only still exists because of the needs of
bfs_io().
* Moved the bfs_io() callback hooks out of the exported module API region,
and removed their bfs_ prefix.
* Added a Volume::IsInitializing() method that should be used rather than
checking if Volume::ID() is >= 0.
* Removed the MultiInodeLocker again, as it's pretty much superfluous now.
* Moved openModeToAccess() to the Utility.h header.
* Minor cleanup.


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


# 5d0a5f7cac1dd709f169ff7b25751103457be78e 23-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* The bfs_shell needs to include <new> as well.


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


# 082bae1aa58dd0021d69aaa2dc05de7b33b75854 23-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* bfs_fsync() no longer grabs the Inode's read lock - instead, Inode::Sync()
will take care of the locking.
* Use new(std::nothrow) over new, and malloc (only in kernel_interface.cpp);
the kernel_cpp.h header isn't really necessary anymore, so there is no reason
BFS should continue to use it.
* Removed superfluous NULL checks.


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


# 03fa417b706f63305263982a61eb1002e6ff9d96 07-Jul-2008 Axel Dörfler <axeld@pinc-software.de>

* Removed the home-brewn locking classes in BFS besides the read/write lock
(for now).
* Inode::fSmallDataLock is now a recursive_lock, Journal::fLock is now
a recursive_lock, too, Journal::fEntriesLock is now a mutex, as is
BPlusTree::fIteratorLock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26298 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


# 4c7e2a45fa5ae13e0d6b8b472d2b4dbbe0e60e79 20-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed a bug in CachedBlock::Unset() that would call block_cache_put() on the same
block everytime it's called - that caused negative reference counts in the block
cache, causing all sorts of problems once they were flushed.
* Changed order of includes in system_dependencies.h to what I prefer: descending from
private to public (resp. from most specific to most generic) headers.
* Minor cleanup.


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


# 68fd0cb9642045681c43fac9c69096d3d1947f6a 24-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Driver settings support is now available in the FS shell.


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


# 87ac9f1d4642e54fd2c474ed531996f4545cca25 27-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed boot loader BFS build which I broke with my recent changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20861 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