From 21c6ae44d304c11998f8cdd96d84b143375ab5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 3 Sep 2004 15:55:41 +0000 Subject: [PATCH] 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 --- src/kernel/core/fs/vfs.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/kernel/core/fs/vfs.cpp b/src/kernel/core/fs/vfs.cpp index fab148c9d8..3b2be9f424 100755 --- a/src/kernel/core/fs/vfs.cpp +++ b/src/kernel/core/fs/vfs.cpp @@ -1422,8 +1422,10 @@ vfs_get_vnode_cache(void *_vnode, void **_cache) { struct vnode *vnode = (struct vnode *)_vnode; - if (vnode->cache != NULL) + if (vnode->cache != NULL) { + *_cache = vnode->cache; return B_OK; + } mutex_lock(&sVnodeMutex); @@ -1431,7 +1433,8 @@ vfs_get_vnode_cache(void *_vnode, void **_cache) // The cache could have been created in the meantime if (vnode->cache == NULL) status = vm_create_vnode_cache(vnode, (void **)&vnode->cache); - else + + if (status == B_OK) *_cache = vnode->cache; mutex_unlock(&sVnodeMutex);