mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:28:12 +00:00
Fix bug where Vnode kept its Inode alive indefinitely.
This commit is contained in:
parent
033a42b580
commit
12a6963a5d
2 changed files with 5 additions and 1 deletions
|
@ -368,7 +368,10 @@ ByteBuffer procfs$vnodes()
|
||||||
path = static_cast<const TTY*>(dev)->tty_name();
|
path = static_cast<const TTY*>(dev)->tty_name();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ptr += ksprintf(ptr, "vnode %03u: %02u:%08u (%u) %s\n", i, vnode.inode.fsid(), vnode.inode.index(), vnode.retain_count(), path.characters());
|
ptr += ksprintf(ptr, "vnode %03u: %02u:%08u (%u) %s", i, vnode.inode.fsid(), vnode.inode.index(), vnode.retain_count(), path.characters());
|
||||||
|
if (vnode.characterDevice())
|
||||||
|
ptr += ksprintf(ptr, " (chardev: %p)", vnode.characterDevice());
|
||||||
|
ptr += ksprintf(ptr, "\n");
|
||||||
}
|
}
|
||||||
*ptr = '\0';
|
*ptr = '\0';
|
||||||
buffer.trim(ptr - (char*)buffer.pointer());
|
buffer.trim(ptr - (char*)buffer.pointer());
|
||||||
|
|
|
@ -198,6 +198,7 @@ void VFS::freeNode(Vnode* node)
|
||||||
m_inode2vnode.remove(node->inode);
|
m_inode2vnode.remove(node->inode);
|
||||||
node->inode.fs()->release();
|
node->inode.fs()->release();
|
||||||
node->inode = InodeIdentifier();
|
node->inode = InodeIdentifier();
|
||||||
|
node->m_core_inode = nullptr;
|
||||||
}
|
}
|
||||||
if (node->m_characterDevice) {
|
if (node->m_characterDevice) {
|
||||||
m_device2vnode.remove(encodedDevice(node->m_characterDevice->major(), node->m_characterDevice->minor()));
|
m_device2vnode.remove(encodedDevice(node->m_characterDevice->major(), node->m_characterDevice->minor()));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue