summaryrefslogtreecommitdiff
path: root/Kernel/Memory/MemoryManager.cpp
diff options
context:
space:
mode:
authorJorropo <jorropo.pgm@gmail.com>2022-08-14 23:54:24 +0200
committerAndreas Kling <kling@serenityos.org>2022-08-15 00:11:33 +0200
commitec4b83326b08408f7b24c021503990d0fddcceb5 (patch)
tree6ec3cdbfc20c89f4793ba0133645f27975b6bd58 /Kernel/Memory/MemoryManager.cpp
parent3c7b0dab0bd5df874d39c5518c521565ceb9d1d6 (diff)
downloadserenity-ec4b83326b08408f7b24c021503990d0fddcceb5.zip
Kernel: Don't release file-pages if volatile memory purge did it
Diffstat (limited to 'Kernel/Memory/MemoryManager.cpp')
-rw-r--r--Kernel/Memory/MemoryManager.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/Kernel/Memory/MemoryManager.cpp b/Kernel/Memory/MemoryManager.cpp
index 77ad11449c..ff45405fce 100644
--- a/Kernel/Memory/MemoryManager.cpp
+++ b/Kernel/Memory/MemoryManager.cpp
@@ -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,10 +958,10 @@ ErrorOr<NonnullRefPtr<PhysicalPage>> MemoryManager::allocate_physical_page(Shoul
}
return IterationDecision::Continue;
});
- if (!page) {
- dmesgln("MM: no physical pages available");
- return ENOMEM;
- }
+ }
+ if (!page) {
+ dmesgln("MM: no physical pages available");
+ return ENOMEM;
}
if (should_zero_fill == ShouldZeroFill::Yes) {