vfs_get_vnode_cache() was pretty broken, and didn't returned the correct

cache pointer in most cases.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8825 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2004-09-03 15:55:41 +00:00
parent 103d0293a9
commit 21c6ae44d3

View File

@ -1422,8 +1422,10 @@ vfs_get_vnode_cache(void *_vnode, void **_cache)
{ {
struct vnode *vnode = (struct vnode *)_vnode; struct vnode *vnode = (struct vnode *)_vnode;
if (vnode->cache != NULL) if (vnode->cache != NULL) {
*_cache = vnode->cache;
return B_OK; return B_OK;
}
mutex_lock(&sVnodeMutex); mutex_lock(&sVnodeMutex);
@ -1431,7 +1433,8 @@ vfs_get_vnode_cache(void *_vnode, void **_cache)
// The cache could have been created in the meantime // The cache could have been created in the meantime
if (vnode->cache == NULL) if (vnode->cache == NULL)
status = vm_create_vnode_cache(vnode, (void **)&vnode->cache); status = vm_create_vnode_cache(vnode, (void **)&vnode->cache);
else
if (status == B_OK)
*_cache = vnode->cache; *_cache = vnode->cache;
mutex_unlock(&sVnodeMutex); mutex_unlock(&sVnodeMutex);