Subversion Repositories HelenOS

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
4584 5663 d 0 h jermar /trunk/uspace/ Separate the VFS input and output protocols.  
4555 5673 d 15 h jermar /trunk/uspace/srv/vfs/ Finish converting VFS to fibril synchronization.  
4518 5681 d 15 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 5683 d 0 h decky /trunk/uspace/ rename libadt -> adt  
4463 5687 d 18 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 5873 d 22 h jermar /trunk/uspace/srv/vfs/ Hold the namespace_rwlock during readdir().  
2766 6138 d 17 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 6151 d 15 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 6157 d 15 h jermar /trunk/uspace/srv/vfs/ Initialize the VFS node properly.  
2731 6160 d 0 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 6161 d 2 h jermar /trunk/uspace/srv/ Introduce the notion of VFS node link counts.  
2691 6198 d 17 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 6199 d 17 h jermar /trunk/uspace/srv/ Management of the cached VFS node size.  
2680 6202 d 0 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 6205 d 17 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 6219 d 20 h jermar /trunk/uspace/srv/vfs/ VFS work.
Fix VFS node hash function to hash only within the limits of its supposed
ranges.
 
2596 6262 d 20 h jermar /trunk/uspace/srv/vfs/ VFS work.
Implement VFS node hash table management.
 
2593 6264 d 17 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 6265 d 20 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.