Directory lookup is completely uncached at the moment and goes through the filesystem's lookup vnode op every time.
We want a namecache which can probably be a hashtable or tree attached to every directory vnode. Namecache elements should constitute references to vnodes which eliminates some lock ordering trickiness. A .. element can be pinned for every directory since the filesystems we care about don't permit directory hardlinks (which makes a parent element for non-directory vnodes more tricky.)
Directory lookup is completely uncached at the moment and goes through the filesystem's
lookup
vnode op every time.We want a namecache which can probably be a hashtable or tree attached to every directory vnode. Namecache elements should constitute references to vnodes which eliminates some lock ordering trickiness. A
..
element can be pinned for every directory since the filesystems we care about don't permit directory hardlinks (which makes aparent
element for non-directory vnodes more tricky.)