History log of /haiku/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Volume.h
Revision Date Author Comments
# a0d87686 11-Jul-2014 Julian Harnath <julian.harnath@rwth-aachen.de>

Adapt userlandfs kernel-addon to atomic_* API changes.

* Remove volatile qualifiers, use atomic_get() for safe access

* Fixes build of userlandfs


# 88e38c17 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Replace uses of obsolescent BReference[able] API.


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


# 8af6418b 19-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for the recently introduced I/O request calls
io_request_{offset,length}(), {read_from,write_to}_io_request().


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


# 07745f2a 30-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for new notify_io_request() function.


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


# 3cf43c26 25-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the fs_vnode_ops::create_dir() parameter for returning the ID of the
newly created dir. The VFS really doesn't need it and for some file systems
it might not be easy to get by. Several file systems (e.g. rootfs and fat)
were ignoring the parameter anyway.


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


# 02442071 19-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Ugh, apparently I forgot to implement HasVNodeCapability(). Now we're actually
saving the trips to userland for hooks that aren't implemented there.


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


# 12539c39 18-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove and delete the VNode in _WriteVNode()/RemoveVNode() after the client FS
is done with it, since we still need to serve file cache requests.


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


# 4649fe05 17-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Haiku kernel interface emulation: Retrieve the capabilities for each vnode.
We do some caching using a hash table indexed by the operations vector.
* Pass the vnode capabilities to the kernel module.
* In the kernel tailor the operation vectors for volumes and vnodes passed to
the VFS according to the respective capabilities. This way those vectors look
pretty much like those from the client FS. This saves unnecessary calls when
hooks are not implemented and should also fix compatibility problems in cases
where not implementing a hook and returning an error don't mean the same to
the VFS.
* Inlined some of the kernel module Volume class getters.


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


# 6747f715 15-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

ReadVNode(): We need to create the VNode object before sending the request
to userland, since typically the file cache for the node is created there
and our FileCacheCreate() method requires and existing VNode object.


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


# 687e02f9 14-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Forward the io() and cancel_io() hooks. Implemented the missing kernel
part.
* Implemented a good part of the kernel part for the support of
do_iterative_fd_io(). The forwarding of the callbacks are missing yet.


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


# 4e597152 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Completed file cache support.


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


# 6880c193 07-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

We do now store a VNode object per node in a hash table. This allowed us to get
rid of the vnode count hash map and the mount vnode maps. Furthermore it will
allows us to easily associate a file cache with each node.


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


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

Removed several shared userlandfs classes that exist as Haiku shared or kernel
util classes as well.


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


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

Handle file cache related requests in the kernel. The actual calls to the
file cache are missing yet -- requires some refactoring in Volume.


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


# 02347947 03-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented acquire_vnode() forwarding.


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


# cdebdeb0 25-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Some more work towards adjusting the UserlandFS to the current FS interface:
* Split the FSCapabilities bit mask into three bit masks for the FS, the
volume, and the vnodes, since we have three independent FS interface
structures, now. The latter is not supported in the kernel add-on, yet.
* Server:
- Temporarily removed some things from the build (the BeOS interface
and the cache implementations).
- Some WIP in HaikuKernelVolume and [haiku_]kernel_emu.{h,cpp}.
- Added HaikuKernelNode, which wraps fs_vnode for the client FS.
The server is still quite a bit away from being buildable again.


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


# 2bcdce29 24-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

First work towards adjusting the UserlandFS to the changed FS API. The
kernel module compiles again, though newer features like VM file support,
asynchronous I/O, and FS layers aren't supported yet. The userland code is
still completely out of sync and won't even compile.


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


# ed07b9c7 02-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

The last missing hooks -- get_vnode_name(), write_attr_stat() and
rewind_query() -- are passed to the userland. get_vnode_name() has an
emulation in userland, in case the client FS doesn't implement it.


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


# cc0bac7f 02-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

We fake read_stat() on the root node and read_fs_info() when the
connection to the server is lost. The former is required by our mount
command (it stat()s the mount point for some reason unknown to me). The
latter is just to be a good citizen.


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


# 97dd0fe3 01-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Adjusted according to the is_vnode_removed() -> get_vnode_removed()
change.
* The new notification functions are used instead of send_notification()
and notify_listener() now. Mapped them in the BeOS kernel emulation
accordingly. RamFS node monitoring seems to work now.


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


# 042eb168 28-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* More debug output in the kernel module.
* Made publish_vnode() available in userland. For old style FS add-ons
publish_vnode() is used when they request a new_vnode(). The semantics
of new_vnode() changed considerably in Haiku, but publish_vnode()
seems to do pretty much what the old new_vnode() did.
* The UserlandFS hosted RamFS begins to work under Haiku. It runs pretty
soon out of memory though (under vmware with 256 MB) and node
monitoring is broken ATM.


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


# 617ed3e4 28-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented the new attribute open/close/... FS hooks. The mapping to the
old interface is completely done in userland ATM.

It becomes more and more obvious that we probably need to provide
the kernel add-on with a bit more information about what the client FS
interface supports in the first place, so we can save unnecessary trips to
the userland. Opening/closing attributes for a FS using the old style
interface could be handled completely in the kernel add-on, for instance
(even if we lose a bit of accuracy wrt to open modes etc.).


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


# b12d25d1 25-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

First walk through the userlandfs kernel add-on to port it to the Haiku
FS interface. Adjusted old hooks, but didn't add the new ones yet. The
module builds now at least.


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


# 83812f67 23-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Copied userlandfs code from the test tree to the haiku source tree,
where it will be ported to Haiku.


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


# a0d87686f4884c31d86e65b81889bf3d26fab703 11-Jul-2014 Julian Harnath <julian.harnath@rwth-aachen.de>

Adapt userlandfs kernel-addon to atomic_* API changes.

* Remove volatile qualifiers, use atomic_get() for safe access

* Fixes build of userlandfs


# 88e38c178a96634d52920e2de8bb3cbd49869f93 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Replace uses of obsolescent BReference[able] API.


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


# 8af6418b5c35c7c7b4a008783ffde29448b01f99 19-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for the recently introduced I/O request calls
io_request_{offset,length}(), {read_from,write_to}_io_request().


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


# 07745f2a0b9f21a8c92326dd8a39d5a8d9a0049c 30-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for new notify_io_request() function.


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


# 3cf43c26516b695e35b7433196a530f7541c4ca8 25-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the fs_vnode_ops::create_dir() parameter for returning the ID of the
newly created dir. The VFS really doesn't need it and for some file systems
it might not be easy to get by. Several file systems (e.g. rootfs and fat)
were ignoring the parameter anyway.


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


# 02442071c3ece34edd737ce77f9824c454ddfb1a 19-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Ugh, apparently I forgot to implement HasVNodeCapability(). Now we're actually
saving the trips to userland for hooks that aren't implemented there.


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


# 12539c39d3f843f8c55cb4e03ccaaf6d08025b3e 18-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove and delete the VNode in _WriteVNode()/RemoveVNode() after the client FS
is done with it, since we still need to serve file cache requests.


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


# 4649fe05ef03c9981231538121df35aab32f2bc0 17-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Haiku kernel interface emulation: Retrieve the capabilities for each vnode.
We do some caching using a hash table indexed by the operations vector.
* Pass the vnode capabilities to the kernel module.
* In the kernel tailor the operation vectors for volumes and vnodes passed to
the VFS according to the respective capabilities. This way those vectors look
pretty much like those from the client FS. This saves unnecessary calls when
hooks are not implemented and should also fix compatibility problems in cases
where not implementing a hook and returning an error don't mean the same to
the VFS.
* Inlined some of the kernel module Volume class getters.


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


# 6747f715cffc13e8effe4cd87a892bfc85e540e8 15-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

ReadVNode(): We need to create the VNode object before sending the request
to userland, since typically the file cache for the node is created there
and our FileCacheCreate() method requires and existing VNode object.


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


# 687e02f9457b4cf0a13495467d561f5c08d84868 14-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Forward the io() and cancel_io() hooks. Implemented the missing kernel
part.
* Implemented a good part of the kernel part for the support of
do_iterative_fd_io(). The forwarding of the callbacks are missing yet.


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


# 4e5971527e106464c327ac02d3bd431ed156d209 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Completed file cache support.


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


# 6880c193621869daeccd4b7c81768f9689b7122c 07-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

We do now store a VNode object per node in a hash table. This allowed us to get
rid of the vnode count hash map and the mount vnode maps. Furthermore it will
allows us to easily associate a file cache with each node.


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


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

Removed several shared userlandfs classes that exist as Haiku shared or kernel
util classes as well.


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


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

Handle file cache related requests in the kernel. The actual calls to the
file cache are missing yet -- requires some refactoring in Volume.


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


# 023479477067cfbce3a46c496d6fbc82c1a98e6c 03-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented acquire_vnode() forwarding.


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


# cdebdeb0aa35c9eabf093024474c865ce9bd6840 25-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Some more work towards adjusting the UserlandFS to the current FS interface:
* Split the FSCapabilities bit mask into three bit masks for the FS, the
volume, and the vnodes, since we have three independent FS interface
structures, now. The latter is not supported in the kernel add-on, yet.
* Server:
- Temporarily removed some things from the build (the BeOS interface
and the cache implementations).
- Some WIP in HaikuKernelVolume and [haiku_]kernel_emu.{h,cpp}.
- Added HaikuKernelNode, which wraps fs_vnode for the client FS.
The server is still quite a bit away from being buildable again.


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


# 2bcdce290bc2207256d093b4fd06b3535daa4676 24-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

First work towards adjusting the UserlandFS to the changed FS API. The
kernel module compiles again, though newer features like VM file support,
asynchronous I/O, and FS layers aren't supported yet. The userland code is
still completely out of sync and won't even compile.


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


# ed07b9c7e338367449b81e28a8d2114f07666c1c 02-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

The last missing hooks -- get_vnode_name(), write_attr_stat() and
rewind_query() -- are passed to the userland. get_vnode_name() has an
emulation in userland, in case the client FS doesn't implement it.


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


# cc0bac7f51fdecf0ff21b55cf75c793177a7fc3b 02-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

We fake read_stat() on the root node and read_fs_info() when the
connection to the server is lost. The former is required by our mount
command (it stat()s the mount point for some reason unknown to me). The
latter is just to be a good citizen.


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


# 97dd0fe3c8a9d971b75753a40e9d0f4278b46d66 01-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Adjusted according to the is_vnode_removed() -> get_vnode_removed()
change.
* The new notification functions are used instead of send_notification()
and notify_listener() now. Mapped them in the BeOS kernel emulation
accordingly. RamFS node monitoring seems to work now.


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


# 042eb168965cf38c32b9355c199ebc197672bd2d 28-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* More debug output in the kernel module.
* Made publish_vnode() available in userland. For old style FS add-ons
publish_vnode() is used when they request a new_vnode(). The semantics
of new_vnode() changed considerably in Haiku, but publish_vnode()
seems to do pretty much what the old new_vnode() did.
* The UserlandFS hosted RamFS begins to work under Haiku. It runs pretty
soon out of memory though (under vmware with 256 MB) and node
monitoring is broken ATM.


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


# 617ed3e4a9ea91cf5be9b9e55d465840c36b1639 28-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented the new attribute open/close/... FS hooks. The mapping to the
old interface is completely done in userland ATM.

It becomes more and more obvious that we probably need to provide
the kernel add-on with a bit more information about what the client FS
interface supports in the first place, so we can save unnecessary trips to
the userland. Opening/closing attributes for a FS using the old style
interface could be handled completely in the kernel add-on, for instance
(even if we lose a bit of accuracy wrt to open modes etc.).


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


# b12d25d15dd11b61fae5f49bfa21d3c884cfdf63 25-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

First walk through the userlandfs kernel add-on to port it to the Haiku
FS interface. Adjusted old hooks, but didn't add the new ones yet. The
module builds now at least.


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


# 83812f67529c88d4fb4b942162a9f21142e683fa 23-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Copied userlandfs code from the test tree to the haiku source tree,
where it will be ported to Haiku.


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