From 2ed14a92db3531008eeb519aab84d9de1702f63e Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 23 Nov 1999 06:51:28 +0000 Subject: [PATCH] Correct the following error: vm_map_pageable() on a COW'ed (post-fork) vm_map always failed because vm_map_lookup() looked at "vm_map_entry->wired_count" instead of "(vm_map_entry->eflags & MAP_ENTRY_USER_WIRED)". The effect was that many page wiring operations by sysctl were (silently) failing. --- sys/vm/vm_map.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 5f429d0efd2..ca42708f783 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -2510,10 +2510,11 @@ RetryLookup:; RETURN(KERN_PROTECTION_FAILURE); } - if (entry->wired_count && (fault_type & VM_PROT_WRITE) && - (entry->eflags & MAP_ENTRY_COW) && - (fault_typea & VM_PROT_OVERRIDE_WRITE) == 0) { - RETURN(KERN_PROTECTION_FAILURE); + if ((entry->eflags & MAP_ENTRY_USER_WIRED) && + (entry->eflags & MAP_ENTRY_COW) && + (fault_type & VM_PROT_WRITE) && + (fault_typea & VM_PROT_OVERRIDE_WRITE) == 0) { + RETURN(KERN_PROTECTION_FAILURE); } /*