It's not so problematic if a busy vnode was released; what is problematic is

if that was the last ref.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16590 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2006-03-05 20:54:17 +00:00
parent ecc6684dca
commit 0254f09df2
+4 -6
View File
@@ -695,18 +695,16 @@ free_vnode(struct vnode *vnode, bool reenter)
static status_t
dec_vnode_ref_count(struct vnode *vnode, bool reenter)
{
int32 oldRefCount;
mutex_lock(&sVnodeMutex);
if (vnode->busy)
panic("dec_vnode_ref_count called on vnode that was busy! vnode %p\n", vnode);
oldRefCount = atomic_add(&vnode->ref_count, -1);
int32 oldRefCount = atomic_add(&vnode->ref_count, -1);
TRACE(("dec_vnode_ref_count: vnode %p, ref now %ld\n", vnode, vnode->ref_count));
if (oldRefCount == 1) {
if (vnode->busy)
panic("dec_vnode_ref_count: called on busy vnode %p\n", vnode);
bool freeNode = false;
// Just insert the vnode into an unused list if we don't need