Subversion Repositories HelenOS

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
4584 5418 d 18 h jermar /trunk/uspace/ Separate the VFS input and output protocols.  
4555 5429 d 9 h jermar /trunk/uspace/srv/vfs/ Finish converting VFS to fibril synchronization.  
4518 5437 d 9 h jermar /trunk/uspace/srv/vfs/ Make VFS use the new synchronization for fibrils. Now there should be no (or
only secondary) fibril serialization. Code reorganized not to hold the phone
lock during async_wait_for() in most cases. Tested on ia32. On amd64, VFS
crashes, but I think it is an unrelated problem.
 
4509 5438 d 18 h decky /trunk/uspace/ rename libadt -> adt  
4463 5443 d 13 h decky /trunk/uspace/srv/vfs/ VFS rewrite:
- add new VFS methods
- VFS_NODE for getting VFS node for a file descriptor
- VFS_OPEN_NODE for opening an i-node directly
- VFS_DEVICE for getting the underlying device of a file (if any)
- VFS_SYNC for syncing buffers
- L_OPEN flag is set to underlying filesystem in VFS_LOOKUP when opening a file to support initialization (if any)
- VFS_CLOSE is now propagated to underlying filesystem to support cleanup (if any)
 
3653 5629 d 16 h jermar /trunk/uspace/srv/vfs/ Hold the namespace_rwlock during readdir().  
2766 5894 d 12 h jermar /trunk/uspace/srv/vfs/ Grab the nodes_futex when manipulating node link counts in rename() and
_unlink().

Fix VFS futex definitions and declarations by replacing atomic_t by futex_t.
 
2742 5907 d 9 h jermar /trunk/uspace/srv/ Separate creation of a TMPFS node and its linking in the file system name space.
Rename VFS_FREE to VFS_DESTROY and destroy_node() to unlink_node().
 
2740 5913 d 10 h jermar /trunk/uspace/srv/vfs/ Initialize the VFS node properly.  
2731 5915 d 18 h jermar /trunk/uspace/srv/ Add the VFS_FREE operation. This operation frees up whatever resources used by
a file system node for which there is no name (i.e. an unlinked node).

Cleanup VFS operations enums and remove unneeded VFS operations.
 
2730 5916 d 20 h jermar /trunk/uspace/srv/ Introduce the notion of VFS node link counts.  
2691 5954 d 12 h jermar /trunk/uspace/srv/vfs/ Improve the API for converting (VFS triplets, size) to VFS nodes by introducing
a new type for results of vfs_lookup_internal().
 
2687 5955 d 11 h jermar /trunk/uspace/srv/ Management of the cached VFS node size.  
2680 5957 d 19 h jermar /trunk/uspace/ Add basic rwlock API for uspace so that VFS can be designed/implemented using
this API. So far, the implementation of this API merely wraps futexes into
rwlocks. Real rwlocks are wanted by ticket #54.

Using the new rwlock API, replace the VFS node content futex with an rwlock.
Lock the contents rwlock as reader on reads and as writer on writes.
 
2679 5961 d 11 h jermar /trunk/uspace/srv/vfs/ Rename unlink_futex to namespace_futex and introduce a new futex for serializing
concurrent access to a VFS node's contents by multiple clients.
 
2652 5975 d 15 h jermar /trunk/uspace/srv/vfs/ VFS work.
Fix VFS node hash function to hash only within the limits of its supposed
ranges.
 
2596 6018 d 14 h jermar /trunk/uspace/srv/vfs/ VFS work.
Implement VFS node hash table management.
 
2593 6020 d 12 h jermar /trunk/uspace/srv/vfs/ A lot of more VFS prototyping.
VFS_OPEN gets reasonably complete, fix a limitation that prevented file
structures from being shared by multiple file descriptors, add functions for
file descriptor management, introduce unlink_futex and two new VFS operations
VFS_UNLINK and VFS_RENAME.
 
2590 6021 d 14 h jermar /trunk/uspace/srv/vfs/ VFS work.
Start implementing VFS side of VFS_OPEN.
Add vfs_node.c to contain VFS node related internal functions.