diff --git a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp index 8fbc685f19..46e51d8cd8 100644 --- a/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp @@ -384,6 +384,8 @@ bfs_remove_vnode(fs_volume* _volume, fs_vnode* _node, bool reenter) ASSERT((inode->Flags() & INODE_DELETED) != 0); status_t status = inode->Free(transaction); + volume->RemovedInodes().Remove(inode); + if (status == B_OK) { status = transaction.Done(); } else if (transaction.HasParent()) { @@ -391,8 +393,6 @@ bfs_remove_vnode(fs_volume* _volume, fs_vnode* _node, bool reenter) status = transaction.Done(); } - volume->RemovedInodes().Remove(inode); - // TODO: the VFS currently does not allow this to fail delete inode;