72439b7dc8
caller has to care about list and vnode mutexes, reference count being zero, intermediate vnode states like VI_CLEAN, VI_XLOCK, VI_MARKER and so on. Add an interface to iterate over a vnode list: void vfs_vnode_iterator_init(struct mount *mp, struct vnode_iterator **marker) void vfs_vnode_iterator_destroy(struct vnode_iterator *marker) bool vfs_vnode_iterator_next(struct vnode_iterator *marker, struct vnode **vpp) vfs_vnode_iterator_next() returns either "false / *vpp == NULL" when done or "true / *vpp != NULL" to return the next referenced vnode from the list. To make vrecycle() work in this environment change it to bool vrecycle(struct vnode *vp) where "vp" is a referenced vnode to be destroyed if this is the last reference. Discussed on tech-kern. Welcome to 6.99.34 |
||
---|---|---|
.. | ||
chfs | ||
ext2fs | ||
ffs | ||
lfs | ||
mfs | ||
ufs | ||
files.ufs | ||
Makefile |