diff --git a/src/add-ons/kernel/file_systems/bindfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/bindfs/kernel_interface.cpp index 72d642dd29..7b1244c415 100644 --- a/src/add-ons/kernel/file_systems/bindfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bindfs/kernel_interface.cpp @@ -141,7 +141,14 @@ bindfs_lookup(fs_volume* fsVolume, fs_vnode* fsDir, const char* entryName, if (error != B_OK) RETURN_ERROR(error); - return get_vnode(fsVolume, *_vnid, NULL); + error = get_vnode(fsVolume, *_vnid, NULL); + + // lookup() on the source gave us a reference we don't need any longer + vnode* sourceChildVnode; + if (vfs_lookup_vnode(sourceVolume->id, *_vnid, &sourceChildVnode) == B_OK) + vfs_put_vnode(sourceChildVnode); + + return error; }