1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 19:38:12 +00:00

Kernel: Protect looping over VMObject regions

We need to hold the memory manager lock so nobody else can modify
these lists while we're iterating them.
This commit is contained in:
Tom 2020-08-25 17:12:18 -06:00 committed by Andreas Kling
parent 0e27a6e39e
commit bcbe2fe525

View file

@ -220,6 +220,7 @@ private:
template<typename Callback>
void VMObject::for_each_region(Callback callback)
{
ScopedSpinLock lock(s_mm_lock);
// FIXME: Figure out a better data structure so we don't have to walk every single region every time an inode changes.
// Perhaps VMObject could have a Vector<Region*> with all of his mappers?
for (auto& region : MM.m_user_regions) {