BFS: Remove the inode from the Removed list with the transaction lock held.

Fixes #19953.
This commit is contained in:
Augustin Cavalier
2026-03-05 15:58:28 -05:00
parent 26f8f18b1c
commit fb0556ae2b
@@ -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;