Page MenuHomeFreeBSD

D56234.id.diff
No OneTemporary

D56234.id.diff

diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -273,8 +273,6 @@
static void
vm_fault_deallocate(struct faultstate *fs)
{
-
- fs->m_needs_zeroing = true;
vm_fault_page_release(&fs->m_cow);
vm_fault_page_release(&fs->m);
vm_object_pip_wakeup(fs->object);
@@ -1373,7 +1371,8 @@
vm_waitpfault(dset, vm_pfault_oom_wait * hz);
return (FAULT_RESTART);
}
- fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0;
+ if (fs->object == fs->first_object)
+ fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0;
fs->oom_started = false;
return (FAULT_CONTINUE);
@@ -1708,7 +1707,6 @@
fs.fault_flags = fault_flags;
fs.map = map;
fs.lookup_still_valid = false;
- fs.m_needs_zeroing = true;
fs.oom_started = false;
fs.nera = -1;
fs.can_read_lock = true;
@@ -1717,6 +1715,7 @@
RetryFault:
fs.fault_type = fault_type;
+ fs.m_needs_zeroing = true;
/*
* Find the backing store object and offset into it to begin the

File Metadata

Mime Type
text/plain
Expires
Sat, Jul 4, 9:56 AM (12 m, 53 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31010002
Default Alt Text
D56234.id.diff (997 B)

Event Timeline