Subversion Repositories HelenOS

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
4584 5664 d 9 h jermar /trunk/uspace/ Separate the VFS input and output protocols.  
4555 5675 d 0 h jermar /trunk/uspace/srv/vfs/ Finish converting VFS to fibril synchronization.  
4518 5683 d 0 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 5684 d 9 h decky /trunk/uspace/ rename libadt -> adt  
4463 5689 d 4 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 5875 d 7 h jermar /trunk/uspace/srv/vfs/ Hold the namespace_rwlock during readdir().  
2766 6140 d 3 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 6153 d 1 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 6159 d 1 h jermar /trunk/uspace/srv/vfs/ Initialize the VFS node properly.  
2731 6161 d 9 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 6162 d 12 h jermar /trunk/uspace/srv/ Introduce the notion of VFS node link counts.  
2691 6200 d 3 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 6201 d 2 h jermar /trunk/uspace/srv/ Management of the cached VFS node size.  
2680 6203 d 10 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 6207 d 2 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 6221 d 6 h jermar /trunk/uspace/srv/vfs/ VFS work.
Fix VFS node hash function to hash only within the limits of its supposed
ranges.
 
2596 6264 d 5 h jermar /trunk/uspace/srv/vfs/ VFS work.
Implement VFS node hash table management.
 
2593 6266 d 3 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 6267 d 6 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.