mirror of
https://github.com/RGBCube/serenity
synced 2025-05-25 19:05:07 +00:00
Kernel: Don't release file-pages if volatile memory purge did it
This commit is contained in:
parent
3c7b0dab0b
commit
ec4b83326b
1 changed files with 6 additions and 4 deletions
|
@ -942,6 +942,8 @@ ErrorOr<NonnullRefPtr<PhysicalPage>> MemoryManager::allocate_physical_page(Shoul
|
||||||
}
|
}
|
||||||
return IterationDecision::Continue;
|
return IterationDecision::Continue;
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
if (!page) {
|
||||||
// Second, we look for a file-backed VMObject with clean pages.
|
// Second, we look for a file-backed VMObject with clean pages.
|
||||||
for_each_vmobject([&](auto& vmobject) {
|
for_each_vmobject([&](auto& vmobject) {
|
||||||
if (!vmobject.is_inode())
|
if (!vmobject.is_inode())
|
||||||
|
@ -956,10 +958,10 @@ ErrorOr<NonnullRefPtr<PhysicalPage>> MemoryManager::allocate_physical_page(Shoul
|
||||||
}
|
}
|
||||||
return IterationDecision::Continue;
|
return IterationDecision::Continue;
|
||||||
});
|
});
|
||||||
if (!page) {
|
}
|
||||||
dmesgln("MM: no physical pages available");
|
if (!page) {
|
||||||
return ENOMEM;
|
dmesgln("MM: no physical pages available");
|
||||||
}
|
return ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (should_zero_fill == ShouldZeroFill::Yes) {
|
if (should_zero_fill == ShouldZeroFill::Yes) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue