History log of /haiku/src/add-ons/kernel/file_systems/ramfs/Volume.cpp
Revision Date Author Comments
# 605ecac1 29-Nov-2022 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Correct "reference" (link) counting of Node objects.

* RemoveReference() could delete us immediately, thus we must do
all important work before invoking it.

* Add assertions about fRefCount and remove a spurious add.

* Do not use Link but PublishVNode on the root, as we manually manage
when this object is published/deleted.

Fixes #18032.


# 8e889731 02-Sep-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Return the number of free pages, not available ones.


# cbc07268 31-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Overhaul block allocation to use a VMCache and physical pages.

This is a massive efficiency improvement as well as a large address
space usage savings. It also paves the way for file_map() support...


# 677fca26 31-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Remove the Attribute::GetKey overload that accepts a ptr-ptr.

This only works because DataCollector stores its data in blocks
which are mapped into the kernel's address space. After the
next series of commits, it won't, so we can't depend on that.

This required some changes to the indexes to keep a copy of the
keys.


# 6d244f23 31-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Use rw_lock instead of recursive_lock for r/w locking.

Also use recursive_lock directly instead of the userlandfs shim class.


# e5832212 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Replace the NodeChildTable with a DirectoryEntryTable.

Now that Attributes don't use a table, we can replace the generic
system with a specific DirectoryEntryTable, upgrading to BOpenHashTable
in the process.


# 019d327d 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Just use the linked list for attributes instead of a hash table.

This is what packagefs does; so if it's performant enough for packagefs,
it's performant enough for us. Greatly simplifies this code (and will
allow for further simplification of the NodeChildHash.)


# 29143642 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Fix debugging print macro invocations and use B_PRI*.


# c3e0275c 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Adapt to current kernel FS APIs and fully fix the build.


# a41d815c 22-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

ramfs: Lots of fixes to the build.

* Store pointers in an addr_t instead of int32, for 64-bit's sake
* Use DebugSupport.h instead of userlandfs Debug.h and remove extra parentheses
* Create a header-only String class based on the userlandfs String and use it
* RecursiveLock instead of Locker.
* Jamfile cleanups and other misc. changes.

It isn't yet adapted to the new VFS API, so the build is still somewhat
broken.


# 4c330e8c 03-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

small order of operations fix

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


# 39313f22 07-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

begin reorganizing ramfs callback parameters to match new filesystem driver standard; correct incorrect style fix as per Ingo; correct layout of fs operation mapping struct

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


# 6305a11c 07-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

tweak the last of the nodes; break apart old style file_system_module_info; add fVolume to Volume to replicate bfs style

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


# aa085ffe 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed UserlandFS shared Locker class. Instead use BLocker in userland and
RecursiveLock in the kernel.
* Several adjustments according to UserlandFS header changes.
* Re-added reiserfs to image.


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


# 6ad9efd6 11-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the AVLTree implementation and used the kernel utils version
instead. Quite a few changes to account for the different interfaces.
The add-on size dropped from 438 to 302 KB, which is still quite heavy.


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


# 245aecda 21-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

Got rid of vnode_id and mount_id, replaced with ino_t and dev_t.


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


# c7a72423 06-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

*sigh* svn really messed it up. I supposed one should make sure to run
update on the directory to be copied before doing it, even if it is up
to date.

Anyway: Ported RamFS to Haiku's FS interface. Change set apparently merged
with older changes.


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


# 224e7c42 06-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Mmh, apparently I have to check the copied directory itself in first.


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


# 4c330e8cfdf1ad1293fceac0e86cf4c92c8272f5 03-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

small order of operations fix

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


# 39313f2227c9643934a165112f075e2fe0ec8ef0 07-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

begin reorganizing ramfs callback parameters to match new filesystem driver standard; correct incorrect style fix as per Ingo; correct layout of fs operation mapping struct

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


# 6305a11cd46507131bc5957f4469b61ac16d17e6 07-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

tweak the last of the nodes; break apart old style file_system_module_info; add fVolume to Volume to replicate bfs style

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


# aa085ffef993707b59f861a32404f1fca50055e9 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed UserlandFS shared Locker class. Instead use BLocker in userland and
RecursiveLock in the kernel.
* Several adjustments according to UserlandFS header changes.
* Re-added reiserfs to image.


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


# 6ad9efd6715d9b27c1517b3fb1425772b894c3bb 11-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the AVLTree implementation and used the kernel utils version
instead. Quite a few changes to account for the different interfaces.
The add-on size dropped from 438 to 302 KB, which is still quite heavy.


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


# 245aecda8ac43fc2c0c0bac6a7e4016efa9b71e1 21-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

Got rid of vnode_id and mount_id, replaced with ino_t and dev_t.


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


# c7a724230744a64dc579d987791f5ff4e3239115 06-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

*sigh* svn really messed it up. I supposed one should make sure to run
update on the directory to be copied before doing it, even if it is up
to date.

Anyway: Ported RamFS to Haiku's FS interface. Change set apparently merged
with older changes.


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


# 224e7c42697a7425059175c74edb62e706477d52 06-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Mmh, apparently I have to check the copied directory itself in first.


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