* Remove the entry from the entry cache as well when removing a bad inode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42057 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1575,10 +1575,10 @@ status_t
|
|||||||
BlockAllocator::_RemoveInvalidNode(Inode* parent, BPlusTree* tree, Inode* inode,
|
BlockAllocator::_RemoveInvalidNode(Inode* parent, BPlusTree* tree, Inode* inode,
|
||||||
const char* name)
|
const char* name)
|
||||||
{
|
{
|
||||||
// it's safe to start a transaction, because Inode::Remove()
|
// It's safe to start a transaction, because Inode::Remove()
|
||||||
// won't touch the block bitmap (which we hold the lock for)
|
// won't touch the block bitmap (which we hold the lock for)
|
||||||
// if we set the INODE_DONT_FREE_SPACE flag - since we fix
|
// if we set the INODE_DONT_FREE_SPACE flag - since we fix
|
||||||
// the bitmap anyway
|
// the bitmap anyway.
|
||||||
Transaction transaction(fVolume, parent->BlockNumber());
|
Transaction transaction(fVolume, parent->BlockNumber());
|
||||||
status_t status;
|
status_t status;
|
||||||
|
|
||||||
@@ -1596,8 +1596,10 @@ BlockAllocator::_RemoveInvalidNode(Inode* parent, BPlusTree* tree, Inode* inode,
|
|||||||
status = tree->Remove(transaction, name, id);
|
status = tree->Remove(transaction, name, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status == B_OK)
|
if (status == B_OK) {
|
||||||
|
entry_cache_remove(fVolume->ID(), parent->ID(), name);
|
||||||
transaction.Done();
|
transaction.Done();
|
||||||
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user