diff options
| -rw-r--r-- | sys/vm/vm_fault.c | 18 | 
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 28e23fae4957..2e51181763a1 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -402,13 +402,15 @@ RetryFault:;  			vm_pageq_remove_nowakeup(fs.m); -			if (VM_PAGE_RESOLVEQUEUE(fs.m, queue) == PQ_CACHE && -			    vm_page_count_severe()) { -				vm_page_activate(fs.m); -				vm_page_unlock_queues(); -				unlock_and_deallocate(&fs); -				VM_WAITPFAULT; -				goto RetryFault; +			if (VM_PAGE_RESOLVEQUEUE(fs.m, queue) == PQ_CACHE) { +				cnt.v_reactivated++; +				if (vm_page_count_severe()) { +					vm_page_activate(fs.m); +					vm_page_unlock_queues(); +					unlock_and_deallocate(&fs); +					VM_WAITPFAULT; +					goto RetryFault; +				}  			}  			vm_page_unlock_queues(); @@ -1335,6 +1337,6 @@ vm_fault_additional_pages(m, rbehind, rahead, marray, reqpage)  		marray[i] = rtm;  	} -	/* return number of bytes of pages */ +	/* return number of pages */  	return i;  }  | 
