Kernel: Don't release file-pages if volatile memory purge did it

This commit is contained in:
Jorropo 2022-08-14 23:54:24 +02:00 committed by Andreas Kling
parent 3c7b0dab0b
commit ec4b83326b
Notes: sideshowbarker 2024-07-18 00:34:07 +09:00

View file

@ -942,6 +942,8 @@ ErrorOr<NonnullRefPtr<PhysicalPage>> MemoryManager::allocate_physical_page(Shoul
}
return IterationDecision::Continue;
});
}
if (!page) {
// Second, we look for a file-backed VMObject with clean pages.
for_each_vmobject([&](auto& vmobject) {
if (!vmobject.is_inode())
@ -956,11 +958,11 @@ ErrorOr<NonnullRefPtr<PhysicalPage>> MemoryManager::allocate_physical_page(Shoul
}
return IterationDecision::Continue;
});
}
if (!page) {
dmesgln("MM: no physical pages available");
return ENOMEM;
}
}
if (should_zero_fill == ShouldZeroFill::Yes) {
auto* ptr = quickmap_page(*page);