Subversion Repositories HelenOS

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
4584 5425 d 10 h jermar /trunk/uspace/ Separate the VFS input and output protocols.  
4555 5436 d 1 h jermar /trunk/uspace/srv/vfs/ Finish converting VFS to fibril synchronization.  
4518 5444 d 1 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 5445 d 10 h decky /trunk/uspace/ rename libadt -> adt  
4463 5450 d 5 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 5636 d 8 h jermar /trunk/uspace/srv/vfs/ Hold the namespace_rwlock during readdir().  
2766 5901 d 4 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 5914 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 5920 d 2 h jermar /trunk/uspace/srv/vfs/ Initialize the VFS node properly.  
2731 5922 d 10 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 5923 d 12 h jermar /trunk/uspace/srv/ Introduce the notion of VFS node link counts.  
2691 5961 d 4 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 5962 d 3 h jermar /trunk/uspace/srv/ Management of the cached VFS node size.  
2680 5964 d 11 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 5968 d 3 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 5982 d 7 h jermar /trunk/uspace/srv/vfs/ VFS work.
Fix VFS node hash function to hash only within the limits of its supposed
ranges.
 
2596 6025 d 6 h jermar /trunk/uspace/srv/vfs/ VFS work.
Implement VFS node hash table management.
 
2593 6027 d 4 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 6028 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.