From fb0556ae2bb9957509310ac752dc705a632d8629 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Thu, 5 Mar 2026 15:58:28 -0500 Subject: [PATCH] BFS: Remove the inode from the Removed list with the transaction lock held. Fixes #19953. --- src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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;