Resurrected is_vnode_removed().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20256 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2007-02-28 22:24:28 +00:00
parent 8cda49ebb8
commit 223bba10f3
2 changed files with 22 additions and 0 deletions

View File

@ -265,6 +265,8 @@ extern status_t get_vnode(mount_id mountID, vnode_id vnodeID,
extern status_t put_vnode(mount_id mountID, vnode_id vnodeID);
extern status_t remove_vnode(mount_id mountID, vnode_id vnodeID);
extern status_t unremove_vnode(mount_id mountID, vnode_id vnodeID);
extern status_t unremove_vnode(mount_id mountID, vnode_id vnodeID);
extern status_t is_vnode_removed(mount_id mountID, vnode_id vnodeID);
extern status_t notify_listener(int op, mount_id device, vnode_id parentNode,
vnode_id toParentNode, vnode_id node, const char *name);

View File

@ -2631,6 +2631,26 @@ unremove_vnode(mount_id mountID, vnode_id vnodeID)
}
extern "C" status_t
is_vnode_removed(mount_id mountID, vnode_id vnodeID)
{
struct vnode *vnode;
mutex_lock(&sVnodeMutex);
status_t result;
vnode = lookup_vnode(mountID, vnodeID);
if (vnode)
result = vnode->remove ? 1 : 0;
else
result = B_BAD_VALUE;
mutex_unlock(&sVnodeMutex);
return result;
}
// #pragma mark - private VFS API
// Functions the VFS exports for other parts of the kernel