Add a VMO pointer to VNode.

This way, if anyone tries to map an already mapped file, we share the VMO.
This commit is contained in:
Andreas Kling 2018-11-08 15:39:26 +01:00
parent 862f108cb5
commit 3b2dcd5929
Notes: sideshowbarker 2024-07-19 18:31:39 +09:00
8 changed files with 59 additions and 10 deletions

View file

@ -180,6 +180,7 @@ auto VirtualFileSystem::allocateNode() -> RetainPtr<Node>
ASSERT(node->retainCount == 0);
node->retainCount = 1;
node->m_vfs = this;
node->m_vmo = nullptr;
return adopt(*node);
}
@ -197,6 +198,8 @@ void VirtualFileSystem::freeNode(Node* node)
m_device2vnode.remove(encodedDevice(node->m_characterDevice->major(), node->m_characterDevice->minor()));
node->m_characterDevice = nullptr;
}
node->m_vfs = nullptr;
node->m_vmo = nullptr;
m_nodeFreeList.append(move(node));
}