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 |
||
---|---|---|
.. | ||
man0 | ||
man1 | ||
man2 | ||
man3 | ||
man3lua | ||
man4 | ||
man5 | ||
man6 | ||
man7 | ||
man8 | ||
man9 | ||
man9lua | ||
tools | ||
Makefile |